群集地理位置(长/纬度)是否位于彼此上下班的30分钟之内?

我正在尝试对地理位置(长/纬度)进行聚类,其中聚类中数据点之间的距离应小于或等于30分钟。我可以使用Google Map API计算数据点之间的持续时间。如何将30分钟之内互相通勤的那些站点聚在一起? 图片供参考:

群集地理位置(长/纬度)是否位于彼此上下班的30分钟之内?

baorry 回答:群集地理位置(长/纬度)是否位于彼此上下班的30分钟之内?

您确实意识到这不是传递性的吗?

A到B可能需要30分钟,因此它们应该在同一群集中。

B到C也是30分钟,所以他们应该在同一个集群中。

但是A到C是60分钟,所以他们不应该。

因此,群集的定义不明确。首先,您需要确定自己真正想要的。然后尝试研究现有算法!

,

尚不清楚您在这里要问什么,但是据我了解,您正在尝试根据经度和纬度在两个点之间建立关联。

因此,假设我使用您提到的API比较了A和B两点。您可以使用字典将两个点相互关联。假设我有一堂这样的课:

Point.py

class Point(object):
    def __init__(latitudeToSet,longitudeToSet):
        self.latitude = latitudeToSet
        self.longitude = longitudeToSet
        self.pointsInRange = {}

然后在主程序文件中,可以像这样使用它(作为基本示例):

import Point

def main:

    someNewPoint = Point(0,0)
    someOtherPoint = Point(1,1)

    if ( googleAPI.isInRange( (someNewPoint.latitude,someNewPoint.longitude),(someOtherPoint.latitude,someOtherPoint.longitude) ) ):

        someNewPoint.pointsInRange["someOtherPoint"] = someOtherPoint
        someOtherPoint.pointsInRange["someNewPoint"] = someNewPoint

    #From here just check if one point exists in another's dictionary.

    if "someOtherPoint" in someNewPoint.pointsInRange:
        #Do stuff because you know the points are in range.
,

我要感谢上面所有试图帮助我的人。上述问题的解决方案是使用参数完全链接= True的聚集层次聚类。我正在关闭此线程,让我知道是否有人想了解更多有关此问题的信息。

谢谢

本文链接:https://www.f2er.com/3163096.html

大家都在问