Rails,gmaps4rails集群问题

时间:2011-09-21 10:02:28

标签: ruby-on-rails ruby-on-rails-3 google-maps gmaps4rails

上次我发现谷歌地图群集存在问题。

我使用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) %>

但我得到了同样的错误。

是否有解决该问题的快速解决方案?

2 个答案:

答案 0 :(得分:1)

这是由于谷歌的更新导致不兼容。

现在好了。

答案 1 :(得分:1)

快速解决方案。

下载此文件:

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer.js

把它放进去:

公共/ 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

ClusterMarkerer - no cluster appear - this.map_.mapTypes[this.map_.getMapTypeId()] is undefined markerclusterer.js:304

HTH

修改 好的Google解决了这个问题,但我会为其他人留下解决方案。