2010-04-26 80 views
1

我目前有一個實現,其中一些標記來自JSON列表顯示,在一個特定的區域,現在我想過濾這些標記取決於一些標準,我做了過濾部分,並獲得了過濾列表。現在再次在地圖上渲染這些標記,當前實現再次用一個鍵加載js,同時創建GMap2對象並在新創建的地圖上繪製標記列表,這實際上很煩人。我希望地圖可以在那裏,只有標記才能從地圖上添加和刪除。 任何幫助表示讚賞如何在不重繪地圖的情況下重繪標記?谷歌地圖

+0

如果您提供您當前的代碼,以便我們可以看到迄今爲止設法完成的任務,那將是最好的。 – akamike 2010-04-26 11:25:56

回答

2

您可以使用addOverlay和removeOverlay添加/刪除已顯示的地圖中的標記。見這裏的例子:http://code.google.com/apis/maps/documentation/overlays.html#Markers

var latlng = new GLatLng(lat, lng); 
map.addOverlay(new GMarker(latlng)); 
+0

好吧,我試過了,繞過了加載js和創建地圖對象,並直接跳轉到getMarkers,getMarkers完成所有創建標記,將它們添加到地圖上並調用setCenter。我之前在GMap上調用了clearoverlays(),結果導致根本沒有生成map。container div是空的。不知道爲什麼! – Vishwanath 2010-04-26 11:48:10

+0

我完全不知道你的意思。此代碼將爲已顯示的地圖添加新標記,因此絕對不需要重新加載地圖: var latlng = new GLatLng(southWest.lat()+ latSpan * Math.random(), southWest.lng( )+ lngSpan * Math.random()); map.addOverlay(new GMarker(latlng)); 我真的需要看到你的代碼來幫助不止於此。 – 2010-04-26 12:02:14

+0

對不起,我的壞,無論你說的是完全正確的,我也在同一條車道。我執行的問題是來自某個不同文件的一些初始化過程,該文件正在清理所有地圖區域,所以這只是給了我可怕的想法,我不知道谷歌API,並可能有一些我錯過了。 雖然感謝您的幫助。對不起,但我不能upvote任何,因爲我在這裏仍然是新的。:( – Vishwanath 2010-04-26 12:19:47

1

您可以drawMap()和drawMarkers()作爲兩個獨立的功能。並且在創建地圖之後,將drawMap重新定義爲空函數,如下所示: drawMap = function(){};之後只會執行drawMarkers()。

希望這是你所需要的。如果沒有,請提供一些代碼。