문제

I'm using MongoDB geospatial queries -- $near, geoNear, etc. -- and I'd like to know how to turn the dis result of the geoNear command as well as the radius argument for $within queries to/from readable units like miles or kilometers.

도움이 되었습니까?

해결책

if your data is in geographic coordinates (i.e. 30.47921 N -121.45724 W) then you need to convert your underlying projection with the units you want (choose a projection that preserves distance) or you need to convert the distance in coordinates to something like miles.

Use the Haversine formula for calculations http://www.movable-type.co.uk/scripts/latlong.html

다른 팁

Using geoNear command for a dis value in kilometers add the parameter:

distanceMultiplier: (6371 * Math::PI / 180.0)

Note if you're using Mongodb version 2.6.0 there is a bug which always enables the new behavior for spherical coordinate systems to return distance in meters (based on WGS84 coordinates).

The documentation states that giving the $near parameter in legacy coordinates rather than GeoJSON should still return radians. This has been fixed in newer versions.

The bug report: Bug #13540

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top