2011-09-21 86 views
2

上次我注意到谷歌地图集群的问题。Rails,群集gmaps4rails问题

我使用gmaps4rails插件(我试过版本0.8.6和1.1.5,并存在两个问题)。

正确显示带有一个标记的简单地图。

但是,如果我有10个标记,那么地图不会显示(许多标记会创建一个簇)。

我检查与萤火虫这个问题,并将其返回

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

我真的很抱歉,但我不明白这个问题:一个地图+ 10个标记有什么问题?禁用群集时有什么问题? – apneadiving

+0

是的,有一个地图和10个标记有问题。当我禁用集群时,我得到了同样的错误。看起来像谷歌地图API最后提交是'邪恶'。 :) –

+0

什么是错误? :) – apneadiving

回答

1

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

现在没问题。

1

快速解决方案。

下载这个文件:

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

把它放在:

公共/ Java脚本/ markerclusterer.js

而在90行改变代码

var maxZoom = 18; //that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom; 

包含文件应用程序/视图/布局/ 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.4

<%= javascript_include_tag "gmaps4rails.js" %> 

为1.XX

<%= javascript_include_tag "gmaps4rails.base.js" %> 
<%= javascript_include_tag "gmaps4rails.googlemaps.js" %> 

之后,你必须使用:

<%= gmaps4rails(@json, true, false) %> 

<%= gmaps({ "markers" => { "data" => @json } },true, false) %> 

不从谷歌地图的默认位置下载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

编辑 好了谷歌修复了问题,但我会离开他人的解决方案。