我有一个n个位置的列表,每个位置包括纬度,经度和时间戳。这些位置将固定在地图上。
但是,需要将最近更改位置作为中心的位置组合在一起,以便地图不会被引脚淹没。
我最初的想法是:
此方法有效,但效率非常低。最坏的情况是~O(n ^ 2)。
有没有更好的算法?
答案 0 :(得分:0)
要超越二次运行时,请使用索引。
在纬度和经度上,您可能想要使用R树,球树,封面树或类似物,因为kd树显然只适用于欧几里德距离,而不是半影。
答案 1 :(得分:0)
我有一个针对你的hacky解决方案,如果你对大概答案没问题,可能会有效。
通常纬度经度会超过几个小数点,如(12.9877949,77.6095064)。现在,您只能在小数点后选择几位数,通常在几公里范围内。
如12.9877979,77.6095054更接近12.9877949,77.6095064所以如果我只拿到2小数点,它们将变成12.98,77.60现在我通过列表并选择具有相同值的那些。
如果您需要非常精确的计算
,这将无法工作