【发布时间】:2011-05-19 22:45:24
【问题描述】:
我有一个用户提交的纬度/经度点数据库,并试图将“接近”点组合在一起。 “接近”是相对的,但目前似乎约为 500 英尺。
起初,我似乎可以按前 3 位小数点具有相同纬度/经度的行进行分组(大约是一个 300x300 的框,理解它会随着您远离赤道而改变)。
但是,这种方法似乎很缺乏。 “接近度”不能与每个小数位所代表的距离有显着差异。它没有考虑到两个位置可能在第 3 个(或任何一个)小数位有不同的数字,但仍然在该位置所代表的距离内(33.1239 和 33.1240)。
我还考虑过 A 点和 C 点都与 B 点“接近”(但不是彼此)的情况——它们应该组合在一起吗?如果是这样,当 D 点“接近”C 点(并且没有其他点)时会发生什么 - 它也应该被分组。当然,我必须确定所需的行为,但是如何实现呢?
谁能指出正确的方向,如何做到这一点以及可以使用哪些不同的方法/方法?
我觉得我错过了一些明显的东西。
目前数据是一个 MySQL 数据库,供 PHP 应用程序使用;但是,如果它们是实现此目的的关键部分,我对其他存储方法持开放态度。这里。
【问题讨论】:
-
这里可能有一些信息:en.wikipedia.org/wiki/Geodatabase
-
没有。除非您解释您的目标是什么,否则没有人可以为您指明正确的方向。为什么要对点进行分组?
-
@Unreason - 更详细一点,这些点代表用户“标记”某些位置,假设如果多个用户标记了彼此靠近的位置,则应仅将其计为一个位置.然而,将彼此相距约 500 英尺的纬度/经度点分组的既定目标似乎非常具体,并且已经产生了信息丰富的答案。
-
@TimLytle 你能告诉我你最终是如何解决你的问题的吗?
标签: sql database geolocation location cluster-analysis