2
에서 MongoDB는 '2d'및 '3d'공간에서 주어진 위도와 경도 near
문서를 찾는 데 사용할 수있는 색인을 만들 수 있습니다.MongoDB는 지형 좌표계에서 거리를 계산하기 위해 어떤 종류의 수식을 사용합니까?
MongoDB는 주어진 위도/경도 쌍 사이의 거리를 찾기 위해 어떤 종류의 수식을 사용합니까?
내 마음에 와서 그 몇은 다음과 같습니다
- 유클리드 거리
- 하버 사인 포뮬러
- Vincenty 공식
Stennie, 그래서 나는이 같은 '2D'색인 컬렉션을 쿼리 할 때'db.runCommand ({geoNear 'my_collection', 가까운 : [my_lon, my_lat, 구형 : 사실, maxDistance : my_dist_in_radiants을})' mongodb는'n-Vector'를 사용할 것입니다, 그렇죠? 코드를 살펴 보겠습니다.하지만 지구를 완벽한 영역으로 취급합니까? – Gevorg
@Stennie MongoDB의 $ near 및 javascript의 Haversine 수식에 의해 반환되는 거리가 다릅니다. 나는 자바 스크립트에서 MongoDB의 구형 인덱스가 사용하는 동일한 메소드를 사용하고자한다. 이걸 좀 도와 주실 래요? –
@SandeepSharma이 답변은 MongoDB의 이전의'2d' 인덱스 유형을 가리키며, MongoDB 2.4 및 그 이후 버전의'2dsphere' 인덱스 유형으로 대체되었습니다. 두 가지 유형 모두 MongoDB 3.4에서 사용할 수 있으며'$ near'에서 사용할 수 있습니다. '2dsphere' 인덱스 계산은 [Haversine 공식] (https://github.com/mongodb/mongo/blob/ac84a0d028eff2b8ca42817d998cb8b34563816c/src/third_party/s2/)을 사용하는's2'라는 Google의 오픈 소스 C++ 라이브러리를 통해 제공됩니다. s2latlng.cC# L37). 그러나 JS에서 부동 소수점 계산은 C++보다 정확하지 않으므로 동일한 결과가 기대되지는 않습니다. – Stennie