2011-06-24 97 views
8

我正在構建一個應用程序,它從數據庫中提取經緯度值並將它們繪製在Google Map上。可能有成千上萬的數據點,因此我「聚集」點彼此靠近,因此用戶不會被圖標淹沒。此刻,我在應用程序中執行此集羣,與簡單的算法是這樣的:PostGIS中的簇點

  1. 所有點的GET數組
  2. 流行音樂第一點不亮陣列
  3. 比較第一點到所有其他點陣列尋找適用於x距離內的物體
  4. 使用原始點和關閉點創建羣集。
  5. 從陣列
  6. 重複

刪除關閉點現在我發佈這個是低效的,是我一直在尋找到GIS系統的原因。我已經建立了PostGIS,並將我的經緯度存儲在一個POINT幾何對象中。

有人可以讓我開始或指向我的一些資源在PostGIS的這種聚類算法的簡單實現嗎?

+1

你可能也想看看k均值的contrib:http://pgxn.org/dist/kmeans/doc/kmeans.html –

回答

2

我結束了使用snaptogridavg的組合。我意識到這裏有算法(即丹尼斯提出的kmeans),它會給我更好的集羣,但是我所做的這些算法足夠快且準確。

1

如果足夠讓東西聚集在您的瀏覽器中,您可以輕鬆使用OpenLayer的羣集功能。有3個示例顯示聚類。

我以前用過PostGIS數據庫,只要你沒有太多荒謬的數據,它的工作就很順利。

+0

我想做羣集服務器端來減少客戶端的加載時間。但感謝您的答案。 – Mike