給定一個地理座標和另一個地理座標的數組,我想找到最近的座標。找到最近的座標到其他座標
例如,給定陣列:
LAT 長
52.525782 13.316927
52.526409 13.319083
52.525678 13.320317
而點:52.525730, 13.314556
,那麼將返回第一個點52.525782, 13.316927
,因爲它是最接近的一個。
實現它的唯一方法是遍歷所有數組並找到點之間的距離?如果數組包含太多座標,會發生什麼情況?
什麼是陣列結構完全相同,是LAT一個陣列和另一個長或者是像'陣列雙[,]' –
@AlfieGoodacre它是一個陣列,就像'雙[,]' –
我寧願看到一個BSP樹 - 二進制空間分區。他們需要很長時間才能從這樣的一個集合中生成,但它會有'O(log n)'搜索。基本上給出了兩個點,它們之間有一條等距線,即使最接近你的查詢點不是這兩個點之一,發現該線的哪一邊有查詢點可以排除其他點的一半,並且我們可以跳過比較它們。 – sqykly