回答

收藏

如何将纬度/经度点的纬度/经度点?

技术问答 技术问答 106 人阅读 | 0 人回复 | 2023-09-14

我有一个用户提交的纬度/经度点数据库,并试图将接近点分组在一起。接近是相对的,但目前似乎大约是500英尺。
6 f' S+ H( I- I- J起初,我似乎可以分组前三个纬度/经度相同的小数位(约300x300框,要知道它会随着远离赤道而变化)。
# I1 m4 n9 V8 ^, g, ^然而,这种方法似乎相当缺乏。紧密度与每个小数位代表的距离并没有明显的不同。它没有考虑到两个位置在小数点后面的三个(或任何三个)可能有不同的数字,但仍然表示(33.1239和33.1240)距离内。- ~! t6 J6 @+ [* ~2 u+ T) D; B8 L
我还考虑了A点和C点都靠近 B点(但彼此不相邻)的情况-它们应该组合在一起吗?如果是这样的话,那么当D点接近 C点(没有其他点)会发生什么-
5 H' F- w: u( _6 e1 S1 |. `2 y: C它也应该分组。当然,我必须确定所需的行为,但如何实现呢?
- V' h8 U+ W2 X& `+ L- z任何人都能为我指明正确的方向,就是怎么做到这一点,能用什么不同的方法/方法?8 k# a; l  [- q7 e0 f
我觉得我好像错过了一些明显的东西。$ t3 _( b8 G7 d; P3 _6 j  m+ r$ ~
目前的数据是一个MySQL数据库,由PHP使用应用程序;但是,如果其他存储方法是实现这一目标的关键部分,我愿意接受。在这里。
8 J1 h4 G$ t& o                                                                - B  I7 b# K4 }: q9 f$ Q8 N9 i* m0 p
    解决方案:                                                                % P9 P$ C4 ?! M; j3 _* B- w# u
                                                                确定两点之间距离的方法有很多,但是要在二维图上绘制点,您可能需要欧几里德距离。如果(x1,y1)代表你的第一点(x2,y2)代表你的第二点,距离是8 `  N6 ]- w- T0 x+ G/ r! t
d = sqrt( (x2-x1)^2   (y2-y1)^2 )对于分组,你可能需要使用一些二维方法来确定事物之间的接近。例如,如果你有三点(x1,y1),(x2,y2),(x3,y3)你可以找到这三点的简单平均中心:
* |3 Z3 h" v/ K+ o9 p1 W7 Wx(mean) = (x1 x2 x3)/3y(mean) = (y1 y2 y3)/3然后,您可以检查每个组件与中心之间的距离,以确定它们是否属于集群的一部分。1 {  J' ?3 d1 g3 K3 k
定义聚类的方法有很多,所有的方法都使用聚类算法的一些变体。我现在很担心,没有时间总结,但请查看链接和算法,希望其他人能提供更详细的信息。祝你好运!
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则