【问题标题】:Unable to render gmaps4rails map无法渲染 gmaps4rails 地图
【发布时间】:2013-04-13 07:02:01
【问题描述】:

好的,我已经尝试了几个小时来使用 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} ],所以基本上它让我认为我的 gmaps 模型对象很好(我还在我的控制器中放置了一个断点,并仔细检查了对我的可映射对象的 to_gmaps4rails() 的调用是否返回了适当的数据)。
  • 还注意到我的 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 showing mapgmaps4rails is not displaying the map

我认为我遗漏了一些非常简单的东西,因为数据似乎已经准备好用于渲染地图。有任何想法吗?

【问题讨论】:

标签: gmaps4rails


【解决方案1】:

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

在我的haml中,我有这个:

#map
  = gmaps4rails(@mapData)

当我需要这个时:

= gmaps4rails(@mapData)

或者:

#foo
  = gmaps4rails(@mapData)

【讨论】: