我正在使用replaceMarkers()重新加载地图中的标记。一切似乎都很好,但在尝试了多种方法后,我似乎无法在缩放或平移时保持开放的信息窗口。当用户点击侧边栏中列出的记录暂时显示信息窗口时,这一点尤其令人讨厌 - 只有在平移停止后才会消失。
我尝试过使用visibleInfoWindow来跟踪窗口和窗口。重置标记后重新打开它,但是当这样做时,新打开的信息窗不再关闭。
我猜我只是错过了一些东西。提前感谢您的帮助。
答案 0 :(得分:1)
如果其他人受益,我在调用replaceMarkers()之后通过执行以下操作成功地保持窗口打开:
请注意,我无法在公开通话中使用标记。我需要使用具有锚点和安装点的serviceObject。所需的偏移属性。
答案 1 :(得分:0)
作为这个例子,我有一些相当粗略和准备好的代码(coffescript)。我的例子是每次重新定位地图时重新加载的地图。您可以在此处查看此操作:http://www.windunit.com/
drawItems = (theBounds) ->
url = "/locations.json/?sw_y=" + theBounds.getSouthWest().lng() + "&sw_x=" + theBounds.getSouthWest().lat() + "&ne_y=" + theBounds.getNorthEast().lng() + "&ne_x=" + theBounds.getNorthEast().lat()
$.get url, (newItemData) ->
visibleinfo = Gmaps.map.visibleInfoWindow.content if Gmaps.map.visibleInfoWindow
Gmaps.map.replaceMarkers newItemData
if visibleinfo
for marker in Gmaps.map.markers
if marker.infowindow.content == visibleinfo
if Gmaps.map.visibleInfoWindow != null
Gmaps.map.visibleInfoWindow.close()
marker.infowindow.open(Gmaps.map.serviceObject, marker.serviceObject)
Gmaps.map.visibleInfoWindow = marker.infowindow
return
Gmaps.map.callback = ->
google.maps.event.addListener Gmaps.map.serviceObject, "idle", ->
bounds = Gmaps.map.serviceObject.getBounds()
drawItems bounds