上次我发现谷歌地图群集存在问题。
我使用gmaps4rails插件(我尝试过0.8.6和1.1.5版本,两者都存在问题)。
正确显示带有一个标记的简单地图。
但是,如果我有10个标记,那么就没有显示地图(许多标记创建了一个集群)。
我用firebug检查这个问题并返回
e.b.mapTypes[e.b.getMapTypeId()] is undefined
此错误来自档案 - > https://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js
此外,我尝试使用选项
禁用群集<%= gmaps({"markers" => { "data" => @json }, "map_options" => {"do_clustering" => false}}, true, true) %>
但我得到了同样的错误。
是否有解决该问题的快速解决方案?
答案 0 :(得分:1)
这是由于谷歌的更新导致不兼容。
现在好了。
答案 1 :(得分:1)
快速解决方案。
下载此文件:
把它放进去:
公共/ Javascript角/ markerclusterer.js
将第90行的代码更改为
var maxZoom = 18; //that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
在app / views / layouts / applications.html.erb
中包含文件<%= javascript_include_tag "https://maps.google.com/maps/api/js?sensor=false&libraries=geometry" %>
<%= javascript_include_tag "markerclusterer_compiled.js" %>
和0.8.x
<%= javascript_include_tag "gmaps4rails.js" %>
表示1.x.x
<%= javascript_include_tag "gmaps4rails.base.js" %>
<%= javascript_include_tag "gmaps4rails.googlemaps.js" %>
之后你必须使用:
<%= gmaps4rails(@json, true, false) %>
或
<%= gmaps({ "markers" => { "data" => @json } },true, false) %>
要不从默认位置下载google maps JS文件。
来源:
https://github.com/apneadiving/Google-Maps-for-Rails/wiki/View-helper
HTH
修改强> 好的Google解决了这个问题,但我会为其他人留下解决方案。