Angesichts einer Anordnung von Geokoordinaten und einer anderen Geokoordinate möchte ich die nächste (n) Koordinate (n) finden.Suche nach der nächsten Koordinate zu einer anderen Koordinate
beispielsweise angesichts der Array:
lat lang
52,525782 13,316927
52,526409 13,319083
52,525678.
Und der Punkt: 52.525730, 13.314556
, dann der erste Punkt 52.525782, 13.316927
wird zurückgegeben, da es in der Nähe ist.
Ist die einzige Möglichkeit, es durch das gesamte Array zu durchlaufen und den Abstand zwischen den Punkten zu finden? Was passiert, wenn das Array zu viele Koordinaten enthält?
Was ist der Array-Struktur genau, ist lat ein Array und lange eine andere oder ist es ein Array wie 'double [,]' –
@AlfieGoodacre Es ist ein Array, genau wie 'double [,]' –
I würde lieber eine BSP-Baum - Binärraum-Partition sehen. Sie brauchen eine lange Zeit, um aus einem Satz wie diesem zu generieren, aber es wird 'O (log n)' suchen. Grundsätzlich gibt es bei zwei Punkten eine Linie, entlang der sie äquidistant sind, und selbst wenn der nächste Punkt zu Ihrer Abfrage nicht einer dieser beiden Punkte ist, kann die Hälfte der anderen Punkte und ausgeschlossen werden, auf welcher Seite der Zeile der Abfragepunkt liegt Wir können sie überspringen. – sqykly