【发布时间】:2011-09-21 18:51:39
【问题描述】:
我正在构建一个应用程序,它从数据库中提取纬度/经度值并将它们绘制在 Google 地图上。可能有数千个数据点,所以我将点“聚集”在一起,这样用户就不会被图标淹没。目前我在应用程序中执行此聚类,使用如下简单算法:
- 获取所有点的数组
- 从数组中弹出第一个点
- 将第一个点与数组中的所有其他点进行比较,寻找落在 x 距离内的点
- 使用原始点和闭合点创建一个簇。
- 从数组中移除关闭点
- 重复
现在我发布这是低效的,这也是我一直在研究 GIS 系统的原因。我已经设置了 PostGIS,并将我的经纬度存储在 POINT 几何对象中。
有人可以帮我入门或指出一些有关在 PostGIS 中简单实现此聚类算法的资源吗?
【问题讨论】:
-
您可能还想查看 k-means 贡献:pgxn.org/dist/kmeans/doc/kmeans.html
标签: php postgresql geolocation gis postgis