在地图加载后添加和更新标记,使用Gmaps4rails v2

问题描述:

在我的Rails应用程序中,地图加载完成后,我进行了一次Ajax调用,然后返回一些位于地图包络中的兴趣点。我想在地图上标记这些兴趣点,但我不希望地图由于添加标记而发生任何移动,并且我希望在标记彼此过于靠近时发生聚类。其次,在我的应用程序中,我可以加载(通过Ajax后退按钮)更多兴趣点(在相同的地图范围内),并且我希望能够将这些新点添加到地图中(除了现有的 - 和以前一样,如果它们太靠近,它们应该彼此聚集(新旧)。在地图加载后添加和更新标记,使用Gmaps4rails v2

我所看到的东西像Gmaps4Rails.replace_markers(newItemData);Gmaps.map.replaceMarkers(markers),虽然我看到(在写这篇文章的时候v2)在Gmaps4Rails'代码库没有提及replace_markersreplaceMarkers。另外,我认为handler.bounds.extendWith(markers); handler.fitMapToBounds();不适合我,因为它似乎会移动地图。

我应该如何去做这些事情与Gmaps4Rails v2

  • 添加标记,而不移动地图(和集群如果需要的话)
  • 添加更多的标记,而不移动地图(和集群的现有的和新的,如果需要的话)

检查doc here

你可以这样做:

var markers = handler.addMarkers(json_array) 
var marker = handler.addMarker(json) 

handler.removeMarkers(markers) 
handler.removeMarker(marker) 

如果你read the source你会看到它为你处理聚类器。

+0

你太棒了。谢谢。 – user664833 2014-09-04 16:37:24

+0

不要忘记为标记使用全局变量Gmaps.markers = handler.addMarkers(); – 2017-11-22 13:50:56