Tôi đang sử dụng MongoDB không gian địa lý truy vấn - $near
, geoNear
, vv - và tôi muốn biết làm thế nào để biến dis
kết quả của lệnh geoNear
cũng như radius
Lập luận cho $within
truy vấn đến/từ các đơn vị có thể đọc được như dặm hoặc km.MongoDB geo từ xa/bán kính cho các đơn vị hữu ích
Trả lời
nếu dữ liệu của bạn ở tọa độ địa lý (ví dụ: 30.47921 N -121.45724 W) thì bạn cần chuyển đổi phép chiếu cơ bản với đơn vị bạn muốn (chọn phép chiếu giữ khoảng cách) hoặc bạn cần chuyển đổi khoảng cách trong tọa độ thành một cái gì đó giống như dặm.
Sử dụng công thức để tính toán Haversine http://www.movable-type.co.uk/scripts/latlong.html
Cảm ơn câu trả lời của bạn! Dữ liệu của tôi thực sự là vĩ độ/kinh độ và tôi có thể sử dụng công thức Haversine để tính toán khoảng cách giữa kết quả và điểm xuất phát bằng cách cắm cả hai tập hợp các điểm vĩ độ/kinh độ, nhưng tôi vẫn không chắc chắn phải làm gì với 'dis' và 'radius'. Bạn có thể làm rõ những gì bạn có nghĩa là "chuyển đổi chiếu cơ bản của bạn"? Có vẻ như nó có thể đơn giản hơn để chuyển đổi 'dis' hơn là cắm cả hai tập lat/lon, phải không? Tôi có cần phải sắp xếp lại công thức Haversine để đáp ứng nhu cầu của tôi ở đây không? Nếu có, biến nào trong phương trình có thể là 'dis'/'radius' cắm vào? –
Xin chào Chris, tôi đã có một câu hỏi tương tự (http://stackoverflow.com/questions/3878702/mongodb-bound-queries-how-do-i-convert-mile-to-radian). Nếu các bạn không phiền, bạn có thể giải thích chi tiết hơn về giải pháp không? Bạn có phải sử dụng map/reduce không? Cảm ơn một lần nữa! – Abe
Nếu bạn đang sử dụng Mongo> 1.8, bạn có thể sử dụng mô hình hình cầu: http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat – TheSteve0
Sử dụng lệnh geoNear cho một giá trị dis bằng km thêm tham số:
distanceMultiplier: (6371 * Math::PI/180.0)
Lưu ý nếu bạn đang sử dụng phiên bản MongoDB 2.6.0 có được một lỗi luôn kích hoạt hành vi mới cho các hệ tọa độ hình cầu để trả về khoảng cách tính bằng mét (dựa trên tọa độ WGS84).
Tài liệu nêu rõ rằng tham số $near
trong tọa độ cũ hơn là GeoJSON vẫn phải trả lại radian. Điều này đã được sửa trong các phiên bản mới hơn.
Báo cáo lỗi: Bug #13540
- 1. Ống kính được sử dụng/hữu ích cho là gì?
- 2. Các đơn vị sử dụng cho maxdistance và MongoDB?
- 3. Các mẫu thiết kế hữu ích cho thử nghiệm đơn vị/TDD?
- 4. Các lớp Java hữu ích/hữu ích nhất?
- 5. Vị trí là gì: tương đối hữu ích cho?
- 6. Có thể âm thanh ngu ngốc, nhưng các bài kiểm tra đơn vị có hữu ích cho thực tế không?
- 7. Có lớp học "đơn vị" không? Nó có hữu ích không?
- 8. Tiện ích WPF hữu ích
- 9. Hướng dẫn vị trí trên Android GEO
- 10. Bối rối về lý do tại sao nó hữu ích đối với các đối tượng giả thử nghiệm đơn vị
- 11. Hình ảnh vector có hữu ích cho Android không?
- 12. Danh sách các lệnh Python hữu ích cho Vim?
- 13. Các gói thông minh hữu ích nhất cho Meteor.js
- 14. Móc Mercurial hữu ích
- 15. Enum hữu ích cho việc gì?
- 16. Các dự án hữu ích trong Haskell
- 17. PyWinAuto vẫn hữu ích?
- 18. Khi nào File.join hữu ích?
- 19. Khi nào __proto__ hữu ích?
- 20. Khi khối nào hữu ích hơn các hàm (ruby)?
- 21. Đơn vị công việc ở mongodb và C#
- 22. `type_info :: before` hữu ích cho mục đích gì?
- 23. Tại sao preallocation lại hữu ích cho danh sách?
- 24. .NET 4.5 CustomReflectionContext: nó hữu ích cho cái gì?
- 25. WebSockets: hữu ích cho việc giảm chi phí?
- 26. ToString() chỉ hữu ích để gỡ lỗi?
- 27. Các bài kiểm tra đơn vị cho các lớp Java "bản địa" ở đâu?
- 28. Phím tắt và mẹo hữu ích dành cho ESS/R
- 29. Tìm kiếm rộng đầu tiên hữu ích cho việc gì?
- 30. Loại dự báo hữu ích cho là gì?
Dường như có câu trả lời tốt hơn nhiều so với câu trả lời chính xác. Liệu có thể thay đổi nó không? – JohnAllen