2011-08-19 75 views
14

Tôi hiện đang cố gắng phát triển thuật toán để tính toán vị trí đã biết gần nhất với vị trí hiện tại đã biết.Thuật toán để tính toán vị trí gần nhất dựa trên kinh độ và vĩ độ

Tôi có danh sách nói 100 địa điểm đã biết (nghĩa là tôi có cả dài và vĩ độ). Trong số 100 tôi chọn một địa điểm và sau khi chọn vị trí đó, tôi muốn danh sách hiển thị 8 vị trí gần nhất đã biết.

Làm cách nào để giải quyết vấn đề này?

Sửa

Tôi không tìm kiếm làm thế nào để tính toán khoảng cách. Tôi đang tìm cách tính toán các vị trí đã biết nằm gần vị trí hiện tại nhất.

Ví dụ:

Nói danh sách chứa 100 vị trí của rạp chiếu phim. Tôi đang ở rạp 5, và tôi muốn tìm xem rạp chiếu phim nào khác trong danh sách nằm gần đó. Không phải là khoảng cách, nhưng vị trí của họ.

+0

Theo vị trí, bạn có nghĩa là lat/lon? – ScruffyDuck

Trả lời

16

Có một số Distance Matrix API. API này cho phép bạn tính toán khoảng cách giữa một số vị trí nhất định.

Bạn có thể làm điều này cũng bằng cách riêng của bạn với một ý tưởng haversine formula

+0

Cảm ơn bạn đã liên kết, có thể trở nên tiện dụng sau này, nhưng ngay bây giờ tôi không tìm cách tính khoảng cách, tôi đang tìm cách tìm vị trí gần nhất với hiện tại. Forinstances Tôi đang ở rạp chiếu phim 'Rạp hát của tôi' và tôi muốn biết những rạp chiếu phim nào khác nằm gần đó. Không phải khoảng cách với họ, nhưng vị trí của họ. – diceler

+0

Nhưng nó vẫn là một giải pháp cho bạn;) Bạn phải có được điểm 'Nhà hát của tôi' và tất cả 100 địa điểm khác. Sau đó tính tất cả 100 khoảng cách và chọn khoảng cách nhỏ nhất. Để tìm điểm gần nhất (khoảng cách nhỏ nhất), bạn phải biết tất cả khoảng cách. – hsz

+1

Tại một thời điểm nào đó, bạn sẽ phải quyết định xem _distance_ từ vị trí hiện tại đến x vượt quá ngưỡng của bạn ... – PLane

1

1: Nếu "100 địa điểm nổi tiếng" của bạn vẫn chủ yếu là giống nhau, bạn có thể phân vùng các địa điểm nổi tiếng cho các nhóm nhỏ hơn và duy trì cấu trúc. Sau đó, chỉ chơi với nhóm gần nhất.

More mathematical approaches here

+0

nhờ đề xuất.Tôi sẽ tạo các nhóm nhỏ và sử dụng một vị trí cho mỗi nhóm để tính toán vị trí gần nhất ban đầu. – netsmertia

1

Cố gắng triển khai thuật toán cây k-d với tìm kiếm lân cận gần nhất.

Các vấn đề liên quan