我有一個地圖點的數據庫,我想限制顯示一次最多顯示50個點。當用戶放大時,可能會顯示更多的點。如何過濾空間數據
目前,我只是隨機抽取結果集。這不是很好,因爲可能有空白區域,當放大時突然顯示一個點。
我的下一個想法是我可以創建一個10x5網格,並迭代結果。如果網格中的某個位置是空的,我會顯示一個點。這解決了以前的問題,但也不能讓用戶瞭解集中區域的位置。而且,如果用戶決定縮小到整個世界,這是非常緩慢的。
現在,我沒有使用任何空間算法來排序數據。我的計劃是先讓它正常工作,然後快速完成。在RTress,kd-trees和quad-trees中稍微閱讀一下,我找不到任何能幫助我選擇樣本的「智能」子集的東西。似乎應該有某種廣度優先搜索能夠很容易地解決這個問題。
我建議你搜索術語聚類算法,許多空間庫實現它或有一些例子來實現它,例如http://openlayers.org/dev/examples/strategy-cluster-threshold.html – phipex 2014-08-25 19:39:27