2016-06-28 3 views
1

를 사용 geoNear 방법으로 얻기 잘못된 거리가 나는 MongoDB를/몽구스 : LOC 내 모델 인스턴스입니다 geoJSON

var geoOptions = { 
    spherical: true, 
    maxDistance: 5000, 
    distanceMultiplier : 0.001, 
    num: 10 
} 
loc.geoNear(point, geoOptions, function(error, results, stats){//do stuff}); 

로 정의

var locationSchema = new mongoose.Schema({ 
    coords: { 
    type: [Number], 
    index: '2dsphere' 
    }, 
}); 

geoJSON 개체로 내 스키마를 정의하고 내 포인트는

입니다
var point = { 
    type: "Point", 
    coordinates: [lng,lat] 
}; 

데이터베이스에 내 문서에 두 개의 문서가 있습니다.

"coords" : [ 
    18.9164127, 
    72.8245292 
] 

"coords" : [ 
    18.935197, 
    72.8249342 
] 

나는이 둘 사이의 거리를 0.619 km로하고 있는데, 2 km 이상이어야합니다. 내가 실수를하고있는 곳을 알아낼 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

1

괜찮은 것 같습니다. 좌표를 [경도, 위도] 형식으로 삽입 하시겠습니까? 이 명령은 중요하며 geoNear를 사용하여 쿼리를 수행하기 위해 mongo에서 사용하는 순서입니다.

+0

예 주문에 이미 확인했습니다. 올바른 형식입니다. – ot954

+0

그러나 "coords"가 있다고 가정합니다. [18.9164127, 72.8245292], "coords"일 때 : [72.8245292, 18.9164127] – Roger

+0

Google지도 https://www.google.co에서 추출한 URL은 다음과 같습니다. in/maps/place/18 % C2 % B056'06.7 % 22N + 72 % C2 % B049'29.8 % 22E/@ 18.9353867,72.8226975,915m/data =! 3m1! 1e3! 4m5! 3m4! 1s0x0 : 0x0! 8m2! 3d18.935197! 4d72.8249342? hl = en – ot954

관련 문제