2010-03-08 59 views
8

Loại cấu trúc dữ liệu nào có thể được sử dụng cho tìm kiếm lân cận gần nhất hiệu quả trong một tập lớn các tọa độ địa lý? Với "thường xuyên" cơ cấu chỉ số không gian như R-Trees rằng giả định tọa độ phẳng, tôi thấy hai vấn đề (Có những người khác tôi đã bỏ qua?):Chỉ số không gian cho các tọa độ địa lý?

  • Wraparound ở hai cực và Line Ngày Quốc tế
  • Distortion của khoảng cách gần các cực

Các yếu tố này có thể được phép như thế nào? Tôi đoán người thứ hai có thể bù đắp bằng cách chuyển đổi tọa độ. R-Tree có thể được sửa đổi để đưa vào tài khoản không? Hoặc có cấu trúc chỉ mục địa lý không gian chuyên biệt?

Trả lời

2

Hãy xem Geohash.

Ngoài ra, để bù đắp cho bao bọc, chỉ cần sử dụng không phải một nhưng ba R-cây trực giao, do đó không tồn tại một điểm trên bề mặt trái đất sao cho cả ba cây đều có mặt tại điểm đó. Sau đó, hai điểm sẽ đóng nếu chúng gần đúng theo ít nhất một trong những cây này.

+0

Geohash có vẻ là một "hoạt động khá tốt hầu hết thời gian" loại điều, nhưng không thể dựa vào để luôn luôn cung cấp một tiền tố chung cho các địa điểm lân cận. Tuy nhiên, ý tưởng sử dụng một số R-Trees trông giống như một giải pháp tốt cho vấn đề bao quanh. –

3

Bạn có thể sử dụng thuật toán băm nhạy cảm theo địa phương (LSH) trong 3 chiều không? Điều đó sẽ nhanh chóng cung cấp cho bạn một nhóm gần đúng mà bạn có thể kiểm tra bằng cách tính khoảng cách vòng tròn lớn.

Here's a paper mô tả thuật toán cho LSH hiệu quả trên bề mặt của đơn vị d chiều sâu hai chiều. Có lẽ nó hoạt động cho d = 3.

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