2009-04-29 52 views

回答

0

來解決這個問題的可能途徑:

  • 構建JSON在服務器端,依賴於縮放級別(CON:需要縮放後重裝,親:只有少量數據amouts需要被加載)
  • 包含有關如何在JSON數據中訪問標記的信息(專業版:只需要加載一次數據,使用JavaScript重複數據)
  • 個計算JavaScript可見標記(:非常有活力,CON:親繁重的計算負荷)
8

有一個地圖視圖中的「邊框」的概念。地圖api將它作爲兩個緯度/長度座標對提供給您 - 一個用於SW角,另一個用於NE角。

因此,如果您有一個返回JSON點的自定義數據服務,則需要接受這些座標作爲輸入,並相應地調整返回的數據集(很可能是您的SELECT語句中的WHERE子句)。

我沒有獲取這個邊界矩形的詳細信息,但這就是API docs的用途。

1

是的,我在一個地方政府機構的申請中做了類似的事情,我們在這裏展示了6000多戶家庭的每間房屋的回收量。由於數據總量(包括每個家庭的地址和統計信息)非常大,因此一次性拖動整個數據文件會導致瀏覽器掛起。

因此,在對數據庫的AJAX調用中,我們發送了地圖區域的邊界矩形座標(緯度,經度),然後僅返回了我們可見的那些點。由於應用程序的本質,用戶驅動的「獲取數據」按鈕是完全可以接受的,但顯然還有很多其他變體可以在主題上使用 - 一旦將邊界座標傳遞到服務器端,您可以決定在那裏做 - 例如,如果縮放級別太高,只返回一個子集。您應該能夠自動捕捉地圖繪製事件並執行操作。

1

當縮放更改時,將新縮放級別發送到您的JSON服務並返回應該在該級別可見的標記。使用addMarkers()將結果添加到MarkerManager,並使其僅在當前縮放級別可見。

此處的其他回覆建議僅返回當前視圖內的標記,但您也可以僅返回該縮放級別的所有標記。這取決於你知道你想在每個級別顯示哪些標記。

6

有一個叫MarketClustered新庫,這將有助於你

alt text http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_clusterereffect.jpg

即使數據量太大,我認爲這將更好地養活地圖將所有的數據,並讓它做這件事。

+7

使用MarkerClusterer的任何超過2000個標記對我而言速度太慢(這是在Firefox中 - Chrome和Safari 4最好高達約8,000)。雖然它取決於標記的密度。 我同意,一次導入數據可能會更好,而不是在縮放更改時發送塊。 – 2009-04-29 21:47:31