![]() |
1
12
我可能会使用 k -means clustering 使用点的笛卡尔坐标(例如wgs-84 ecf)。很容易实现并快速收敛,并且无论数据是什么样子,都能适应您的数据。另外,你可以选择 K 为了满足您的带宽需求,每个集群将具有相同数量的关联点(mod k)。 我将创建一个集群形心表,并在原始数据表中添加一个字段,以指示它属于哪个集群。如果您的数据是动态的,那么您显然希望定期更新集群。我不知道您是否可以使用存储过程和触发器来实现这一点,但也许可以。 *“修正”是调整计算出的质心向量的长度,使它们位于地球表面。否则你会得到一堆负高度的点(当转换回llh时)。 |
![]() |
2
5
如果您是在地理位置上集群的,而我不能想象它是其他任何东西:—,那么您可以将“集群ID”和lat/long坐标一起存储在数据库中。 我的意思是把世界地图分成(例如)一个100x100矩阵(10000个集群),每个坐标被分配到其中一个集群。 然后,您可以通过选择同一个正方形中的坐标和通过选择相邻正方形中的坐标来检测非常接近的坐标。 你的方块的大小(以及它们的数量)将由你需要聚类的精确程度决定。显然,如果你只有一个2x2矩阵,你可以得到一些相距很远的坐标的聚类。 yo总是有边缘情况,例如两个点靠得很近,但在不同的簇中(簇中最北的一个,簇中最南端的另一个),但可以调整簇的大小。 或 在客户端对结果进行后处理。 |
![]() |
3
4
我为一个地理应用程序做了类似的事情,我想确保可以轻松缓存点集。我的地理散列代码如下:
一切都很顺利。我有一些代码可以从一个给定的点抓取所有的块到一个给定的半径,这个半径可以转换成一个单独的memcache multiget(还有一些代码可以在它丢失时对其进行回填)。 |
![]() |
4
2
为了 movielandmarks.com 我使用了来自 Mike Purvis ,的作者之一 Beginning Google Maps Applications with PHP and AJAX . 它使用php和mysql为不同的缩放级别构建集群/点树,并将其存储在数据库中,以便快速调用。即使您使用的是不同的数据库,其中一些可能对您有用。 |
![]() |
5
1
|
![]() |
6
0
我相信你可以用 MSSQL's spatial data types . 如果它们与我所知道的其他空间数据类型类似,它们会将您的点存储在一个矩形树中,然后您可以转到低分辨率的矩形以获得隐式簇。 |
![]() |
SorenPeter · 计算多点行驶距离的更快方法 7 年前 |
![]() |
Phil · 用sqlalchemy从postgis数据库中获取经纬度 7 年前 |
![]() |
javas · 从纬度和长纬度显示地址 7 年前 |
|
cheesetaco · 如何将城市名称转换为时区? 7 年前 |
![]() |
IsisDorus · 将Lat/Lon点映射到R中的形状文件 7 年前 |
![]() |
Conor Neilson · 基于最短地理距离的数据帧匹配 7 年前 |
![]() |
user955857 · 在JS中使用分隔符从一个列数组创建两个列数组 7 年前 |