集群地理位置(长/纬度),距离彼此通勤30分钟以内?

2024-09-30 18:23:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对地理位置(long/lat)进行聚类,其中群集中数据点之间的距离应小于或等于30分钟。我可以使用googlemapapi计算数据点之间的持续时间。我如何才能集群这些网站是在30分钟内从对方通勤? 附图片供参考:

Click here


Tags: 数据距离网站集群地理位置聚类long持续时间
3条回答

你知道这是不可传递的吗?你知道吗

A到B可以是30分钟,所以它们应该在同一个集群中。你知道吗

B到C也是30分钟,所以它们应该在同一个簇中。你知道吗

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

所以你的簇没有很好的定义。首先,你需要确定你真正想要的是什么。然后尝试研究现有的算法!你知道吗

现在还不完全清楚你在问什么,但据我所知,你试图把两个基于经度和纬度的点相互联系起来。你知道吗

假设我用你提到的API比较了两点,A和B。你可以用字典把两点联系起来。假设我有一节课是这样的:

你知道吗点.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.

我要感谢上面所有帮助我的人。解决上述问题的方法是利用参数complete linkage=True的凝聚层次聚类。我关闭这个线程,让我知道如果有人想了解更多关于这个问题。你知道吗

谢谢

相关问题 更多 >