我正在構建一個ASP.NET MVC網站,我希望Google Maps JavaScript API地圖顯示通過AJAX從後端加載的標記。將標記延遲加載到Google Maps JavaScript API地圖的策略
由於我不希望客戶端遇到內存問題,我想延遲加載標記並將它們應用於Fluster2,以將它們放入集羣。我認爲延遲加載標記的最佳方式是將事件偵聽器添加到Map的idle
事件中,該事件在地圖平移或縮放後發生。
這是我目前的策略:
- 事件偵聽器添加到
idle
事件。 - 當
idle
事件被拋出時,使用jQuery對我的後端進行AJAXHTTP POST
調用,提供地圖的當前視口/邊界。 - 後端返回視口內的所有點。
- 這些點被創建爲標記並添加到Fluster2,它將它們添加到地圖中。舊點不會被丟棄。
- 重複
然而,這可能會產生問題,因爲老點不被丟棄。我不想丟棄它們,因爲我不想再次加載它們,但是按照我目前的策略,我會再次加載它們併爲它們再次創建標記。
雖然我覺得在AJAX調用中告訴後端不是一個好主意,我已經有了一些標記,但是實現某種不允許重複的散列表 。
這樣,當我加載點時,我可以嘗試將它們添加到哈希表中:如果成功,我還沒有顯示它們,所以我可以將它們添加爲標記;如果失敗了,他們已經在地圖上了。
這是一個很好的策略嗎?如果是這樣,我怎麼能實現一個不允許重複的哈希表?
感謝您的幫助!我會盡力實現這一點。 – 2010-07-25 00:52:31
對於散列鍵,您可以從lat/long創建一個google.maps.latLng對象,並使用它的toString()方法。 – dsas 2013-04-04 13:47:18