데스크탑 GIS를 설계 할 때 20 년 전에이 질문을 정확히 조사했습니다. 지점 간 거리를 대화식으로 찾아야했습니다. 우리의 목표는 수천 포인트에 대해 1/2 초 이내에 계산을 수행하는 것이 었습니다. 테스트 (25 MHz 486 PC에서!)는 우리가 설명 한대로 (간단한 명백한 알고리즘으로) 모든 거리를 계산할 수 있었으므로 쿼드 트리 구조와 같은보다 정교한 솔루션을 만드는 것은 의미가 없었습니다. .
단일 "프로브"포인트까지의 거리를 계산하려면 옵션에 (a) 프로브 포인트를 중심으로하는 등거리 투영을 사용하여 모든 포인트를 투영하거나 (b) 구형 지구 모델을 채택하고 Haversine 공식을 사용합니다 . 첫 번째는 타원체 모델의 정확도가 필요한 경우에 적합합니다. 두 경우 모두 계산 속도가 합리적으로 빠르며 아마도 1000 틱 미만이 걸릴 수도 있습니다. 단일 프로세서로 초당 약 백만 점을 쿼리 할 수 있습니다.
당신을 위해 충분히 빨리? 그렇지 않은 경우 무차별 강제 방법은 쉽게 병렬화되고 프로세서 수에 따라 직접 확장됩니다. 프로세서간에 점을 나누고 각 프로세서에서 찾은 가장 가까운 점을 최종 비교합니다.
더 빠르게 진행해야하는 경우 다양한 근사값을 사용하여 화면 포인트를 표시 할 수 있습니다. 예를 들어, 위도가 -88도에서 +88도 사이이고 지금까지 가장 가까운 지점이 200km 떨어진 경우 위도가 프로브 포인트의 위도와 2도 이상 다른 지점은 더 가까이있을 수 없습니다 ( 지구의 위도는 약 110km를 초과합니다). 대부분의 경우 이러한 종류의 사전 심사를 통해 초당 수억 개의 포인트를 처리 할 수 있습니다.