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

问题描述 投票:-2回答:3

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

“单击此处”

python api maps cluster-analysis duration
3个回答
1
投票

您知道这不是传递性的吗?

A到B可能是30分钟,所以它们应该在同一群集中。

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

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

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


0
投票

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

因此,我使用您提到的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.

0
投票

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

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.