Làm thế nào để có được geohash của một hộp giới hạn?


8

Tôi đang lưu trữ một bộ sưu tập lớn các giá trị geohash 5m x 5m. Tôi muốn có thể truy vấn bộ sưu tập này và tìm tất cả các giá trị geohash nằm trong một georect cụ thể - được xác định bởi 2 điểm vĩ độ - điểm NW và điểm SW.

Điều tôi không hiểu là đây: giả sử tôi có tất cả các vị trí của mình trong kho lưu trữ dữ liệu (cùng với vĩ độ, kinh độ và địa lý (với độ chính xác cao) của từng vị trí.)

Tôi biết rằng tôi nên sử dụng tiền tố của geohash (để khớp các vị trí bên trong), nhưng làm cách nào để tính toán một geohash của một hộp giới hạn? Xem xét hộp giới hạn được tạo thành từ hai điểm, Đông Bắc và Tây Nam, tôi không hiểu làm thế nào để làm điều này ..

Để tôi truy vấn vị trí nào sẽ được trả về cho hộp giới hạn hiện có thể nhìn thấy, tôi cần geohash của hộp giới hạn có thể nhìn thấy / có thể xem được - Bây giờ tôi biết tôi có thể geohash vị trí trung tâm trên bản đồ có thể xem được, nhưng tôi không biết làm thế nào nhiều chữ cái cần cắt bỏ (để giảm độ chính xác) để đạt được "sự phù hợp" với hộp giới hạn thực tế. (Hoặc có thể đó không phải là cách ...?)

Bạn làm gì khi hộp chứa giới hạn cho geohash? (giống như ở giữa khu vực có thể xem được, nó sẽ phân chia giữa 'dqcjr0' và 'dqcjqb')

Ngoài ra, giả sử tôi có một geohash 5 chữ cái, làm thế nào tôi có thể chuyển đổi lại thành một khung giới hạn có thể xem được? hay nói cách khác, làm thế nào để tôi biết cái gì được 'bao gồm' trong hàm băm và cái gì trong các giá trị băm liền kề?

Câu trả lời:


2

Sau đây là một trong những giải pháp tôi có thể tìm thấy.

Có 12 cấp độ của một geohash. Kích thước thay đổi từ
5,009,4km x 4,992,6kmcấp 1 đến
3,7cm x 1,9cmcấp 12 .

Điều đầu tiên, bạn cần sửa chữa trên một cấp độ.

Lấy điểm trung tâm của khung giới hạn. Khi bạn có khoảng cách tối đa từ tâm và kích thước geohash, hãy tìm các điểm lưới bên trong hộp ở khoảng cách (kích thước geohash).

Chuyển đổi điểm lưới thành geohash.

Sẽ chia sẻ liên kết của dự án nguồn mở của tôi, hoạt động tương tự. (Cần một số cải tiến trước khi tôi đẩy mã :-))

Ở câu hỏi thứ hai của bạn, việc chuyển đổi một geohash thành một cặp cho chúng ta trung tâm của khu vực geohash * (một khu vực hình chữ nhật) *.

Với kích thước của geohash ở cấp độ đó, bạn có thể có cho mình một hộp giới hạn.

Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.