我有一组点(坐标),我可以计算每个点到所有点的距离。
但我想对彼此靠近的点进行分组(比如说,小于 500m)。
PointsCoords =[
["lat01, lng01", "P01"],
["lat02, lng02", "P02"],
["lat03, lng03", "P03"],
["lat04, lng04", "P04"],
["lat05, lng05", "P05"],
["lat06, lng06", "P06"],
["lat07, lng07", "P07"]
];
我进行了计算,现在我知道对于小于 500m 的距离,我有这些对:
varAllPairs = [
[P01, P03], //450m
[P02, P03], //200m
[P05, P06]] //350m
但是,我如何将它们分组:
varClusterGroups = [P01,P02,P03], [P05,P06]
(我知道 P01 到 P02 超过 500m,但现在总比没有好......有没有更好的方法来找到一个真正的点簇?)
如何使用 javascript 或 jquery(或下划线)创建组(varClusterGroups)?
或者可能是解决方案 2:获取所有坐标并应用一种算法,该算法为我提供聚类组
Tks
编辑:我真的不知道正确的标准,但我需要的是在我有 2 个或更多点足够接近时收到警报(这是为了检测 2 个或更多车辆何时足够接近 [每个距离小于 X m其他],当他们不应该这样做时),所以我没有预定义“中心点”。我只想知道车辆 01,03,04 和 05,07,08 和 09,15 被“分组”。可能有一个或多个点属于另一组的可能性,但我认为如果两组有共同点,则应将其转换为一组。