1

好的,我已经尝试了几个小时用 gmaps4rails 渲染谷歌地图,但我无法弄清楚,所以我希望在这里得到一些想法。我想我已经很接近了。

这是我所做的:

  • 在 github 上完成了设置步骤:https ://github.com/apneadiving/Google-Maps-for-Rails
  • 注意到我视图中的 gmaps4rails 方法调用在标记中添加了一些 JS 代码,因此我在对 Gmaps.load_map() 的 JS 调用上放置了一个断点。在这个方法中,我在 Gmaps.map.initialize() 上设置了一个断点。此时,我的页面中显示了一个空白 div 区域(要渲染地图的位置),但是当我单步执行此行时,该区域被隐藏(特别是在初始化中的地图创建期间是隐藏发生的地方:return新的 google.maps.Map(document.getElementById(this.map_options.id),mergedOptions))。之后的下一行是对地图标记的调用,它提供了一个 lat/lng 对象数组,看起来像这样: Gmaps.map.markers = [{"lat":90.2765777,"lng":-37.7498712} ],所以基本上它'
  • 还注意到我的 firebug 网络选项卡中对 google maps api 的几次调用(调用 maps.gstatic.com、mt0.googleapi.com 和 maps.googleapi.com)。
  • 确保 gmaps4rails css 文件正在下载到我的浏览器会话中(我正在获取 gmaps4rails.css)。
  • 在某个时候尝试使用 google api 密钥在我的视图上添加一个脚本标签,但后来发现我真的不需要它的最新版本,如下所述:Google Maps API-Key in gmaps4rails
  • 在 SO 上搜索了一些类似的问题,发现这些无济于事:gmaps4rails not shown map , gmaps4rails is not displayed the map

我想我错过了一些非常简单的东西,因为数据似乎已经到位,可以渲染地图。有任何想法吗?

4

1 回答 1

1

事实证明,我将 gmaps4rails 的 map_container div 包装在我自己的地图 div 中,这让 gmaps4rails 无法正常工作。我假设 gmaps4rails 的 JS 逻辑插入并依赖于它自己的 div#map。所以基本上不要将您的 gmaps4rails 调用包装在 id="map" 的 div 中。

在我的haml中,我有这个:

#map
  = gmaps4rails(@mapData)

当我只需要这个时:

= gmaps4rails(@mapData)

或者:

#foo
  = gmaps4rails(@mapData)
于 2013-04-27T13:10:39.353 回答