Tôi có một số đối tượng được bản địa hóa địa lý (tôi có cho mỗi đối tượng vĩ độ + kinh độ). Ứng dụng của tôi cần hiển thị các đối tượng cách vị trí GPS của thiết bị di động 3 km. Tôi có hàng ngàn đối tượng và chúng được bản địa hóa ở khu vực rộng lớn (ví dụ, một số tiểu bang của Hoa Kỳ, một số quốc gia nhỏ), có nghĩa là trong danh sách các đối tượng của tôi có thể đặt ở NYC và một ở Miami nhưng tôi cũng có thể đối tượng rất gần (vài mét).cách sắp xếp dữ liệu địa lý để tìm kiếm nhanh
Hiện tại, Ứng dụng của tôi thực hiện tìm kiếm lặp lại. Đối với mỗi đối tượng tôi tính toán khoảng cách với vị trí GPS và nếu khoảng cách là < = 3KM thì tôi giữ đối tượng khác mà tôi bỏ qua nó. Thuật toán này không hiệu quả lắm và tôi đang tìm một thuật toán sẽ cho hiệu năng tốt hơn.
Tôi giả sử có cách sắp xếp đối tượng bằng cách sử dụng phối cảnh địa lý và bên cạnh để tìm nhanh hơn các đối tượng nằm xung quanh vị trí GPS.
Ý tưởng hiện tại của tôi chỉ là tính toán hình chữ nhật với "điểm cực", Bắc/Nam/Đông/Tây (từ 3km vị trí GPS) để giới hạn vùng tìm kiếm. Tiếp theo tôi sẽ tính toán khoảng cách chỉ cho các đối tượng bên trong hộp này. Tôi nghĩ rằng một cái gì đó tốt hơn có thể được thực hiện nhưng tôi không có ý tưởng ...
Bất kỳ đề nghị sẽ được đánh giá ;-) Cảm ơn,
SEB.
Tôi nghĩ rằng một quadtree trực tiếp trong lat/lon hoạt động cho hầu như tất cả các kịch bản. Nếu kinh độ là 0-360 thì tôi sẽ thay đổi nó để "đường may" trong dữ liệu nằm trên dòng ngày chứ không phải ở số 0 (vì vậy tất cả các vấn đề sẽ chỉ ở cực bắc, cực nam và thái bình dương) . –
Thực sự cảm ơn, tôi sẽ nghiên cứu Octree và kd-tree. Nếu không quá phức tạp cho bộ não nhỏ của tôi, nó có thể làm gì đó với nó! – sebastien