Tôi đã điều tra chính xác câu hỏi này 20 năm trước khi thiết kế một máy tính để bàn. Chúng tôi cần phải tìm khoảng cách điểm-điểm tương tác; mục tiêu của chúng tôi là thực hiện các tính toán trong chưa đầy 1/2 giây cho hàng ngàn điểm. Thử nghiệm (trên PC 486 48 MHz!) Cho thấy chúng tôi có thể tính toán tất cả các khoảng cách, chính xác như bạn mô tả (với thuật toán rõ ràng đơn giản), nhanh đến mức không có ý nghĩa gì để tạo ra một giải pháp phức tạp hơn, chẳng hạn như cấu trúc tứ giác .
Để tính toán khoảng cách đến một điểm "thăm dò" duy nhất, các tùy chọn của bạn bao gồm (a) chiếu tất cả các điểm bằng phép chiếu tương đương tập trung tại điểm thăm dò hoặc (b) áp dụng mô hình trái đất hình cầu và sử dụng công thức Haversine . Đầu tiên là thích hợp nếu bạn cần độ chính xác của mô hình ellipsoidal. Trong cả hai trường hợp, các phép tính đều nhanh chóng, có thể mất ít hơn 1000 tick: bạn có thể truy vấn khoảng một triệu điểm mỗi giây với một bộ xử lý.
Đủ nhanh cho bạn? Nếu không, phương pháp brute-force song song dễ dàng và chia tỷ lệ trực tiếp với số lượng bộ xử lý: chỉ cần chia điểm cho các bộ xử lý và sau đó thực hiện so sánh cuối cùng với điểm gần nhất được tìm thấy bởi mỗi bộ xử lý.
Nếu bạn cần đi nhanh hơn, bạn có thể sử dụng các xấp xỉ khác nhau cho các điểm trên màn hình. Ví dụ: nếu bạn ở giữa vĩ độ -88 đến +88 độ và điểm gần nhất được tìm thấy cách đó 200 km, thì bất kỳ điểm nào có vĩ độ khác với vĩ độ của điểm thăm dò hơn 2 độ không thể gần hơn (bởi vì bất cứ nơi nào trên trái đất, một độ vĩ độ vượt quá khoảng 110 km). Trong nhiều trường hợp, loại sàng lọc trước này có thể cho phép bạn xử lý hàng trăm triệu điểm mỗi giây.