2014-02-15 31 views
5

我正在做一些測試,使用HTML地圖以及Leaflet。服務器端我有一個Ruby Sinatra應用程序提供由MySQL表提取的json標記。使用2k-5k和潛在更多標記的最佳實踐是什麼?使用單張處理數千個標記的最佳做法

  • 首先加載所有標記,然後將所有內容委託給Leaflet.markercluster
  • 每當地圖視口發生變化時加載標記,發送southWestnorthEast指向服務器,精心修剪服務器端,然後將標記緩衝客戶端與服務器獲取的條目同步(我現在正在執行的操作) 。
  • 上述兩種方法的組合。

感謝, 盧卡

回答

5

自從我最初發布這個問題以來,幾個月過去了,我通過了!

由於@Brett DeWoody正確指出正確方法是嚴格相關的屏幕上的DOM元素數(我主要是指標記)。如果你的設備速度更快(特別是CPU),則越多越好。由於我開發的應用程序將臺式機和平板電腦都作爲目標設備,因此CPU就像不同地理區域的標記密度一樣是一個相關因素。

我決定分開DBase查詢/提取和地圖表示/顯示。基本上,用戶調整控件/輸入以過濾整個數據集,然後提取記錄並且執行表示的工作。當過濾器被修改時,週期重新開始。用戶可以根據CPU功率選擇集羣化的地圖縮放級別。

在我特殊的情況下,上述代表最好的方法(由console.time驗證)。我發現視口優化對於較低的標記密度區域是有利的(可惜)。

希望它有幫助。

乾杯, 盧卡

+0

哦,我的!你救了我的一天!我新增了這個插件,但看到工作真的很棒:D –

1

嘗試選項,當你看到問題,而不是提前優化優化。除非您的標記有大量的數據附加到它們,否則您可能只能使用Leaflet.markercluster。

+1

我覺得也有一個UX元素這個問題。標記是隨機分佈還是聚集在一起,以及用戶喜歡什麼縮放級別?這些也可能影響最終選擇。 –