Алгоритм для вычисления расстояний между многими географическими точками

У меня есть матрица, содержащая около 1000 геопространственных точек (долгота, широта), и я пытаюсь найти точки, которые находятся в диапазоне 1 км.

ПРИМЕЧАНИЕ: «Точки динамические, представьте, что 1000 транспортных средств движутся, поэтому мне приходится пересчитывать все расстояния каждые несколько секунд»

Я провел несколько поисков и прочитал об алгоритмах Graph, таких как (Floyd – Warshall), чтобы решить эту проблему, и в итоге у меня появилось много ключевых слов, и сейчас я немного потерялся. Я рассматриваю производительность, и поскольку радиус поиска равен s hort, кривизну земли рассматривать не буду.

По сути, похоже, что мне нужно вычислить расстояние между каждой точкой и каждой другой точкой, затем отсортировать расстояния, начиная с каждой точки в матрице, и получить точки, которые находятся в ее диапазоне. Итак, если у меня есть 1000 координат, я должен выполнить этот процесс (1000 ^ 2-1000) раз, и я не верю, что это оптимальное решение. Спасибо.

17
задан Alaa Qutaish 23 January 2012 в 01:04
поделиться