programing

최대 거리 및 MongoDB에 사용할 유닛?

newstyles 2023. 7. 3. 22:36

최대 거리 및 MongoDB에 사용할 유닛?

저는 MongoDB와 지리 공간 검색에 대해 생각해 보려고 노력하고 있습니다.기본적으로 제가 원하는 것은 사용자가 현재 위치에서 설정된 거리 내에서 촬영된 문서(이미지)를 쿼리할 수 있도록 하는 것입니다.그래서 저는 사용자가 서 있는 곳에서 1km 이내에서 촬영된 모든 이미지를 검색하고 있습니다. 아래 예제를 사용하려고 하지만 최대 거리 값으로 무엇을 설정해야 할지 모르겠습니다.

db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})

그래서 제 질문은 반경 1km 이내에서 문서를 검색할 경우 최대 거리를 얼마로 설정해야 합니까?

저는 여기에 완전히 갇혔습니다.

mongodb를 사용하기 위해서.$nearkm 경계가 있는 쿼리, 반지름 값을 km로 변환해야 합니다.기본적으로 mongodb $near accepts$maxDistance~하듯이radius.

거리 변환 기준111.12(1도는 약 111.12km) km를 사용할 때 또는 degree를 사용할 때 거리를 그대로 둡니다.

질문에 대하여

반경 1km 내에서 문서를 검색할 경우 최대 거리를 얼마로 설정합니까?

당신은 이것을 사용할 수 있습니다.

   db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )

는 여기서 몽고 공간 기능의 사용법에 대해 자세히 답변했습니다.확인할 수 있습니다.

MongoDB 버전 2.4에서는 다음과 같이 반경을 미터 단위로 직접 $maxDistance 값으로 지정할 수 있습니다.

db.<collection>.find({loc: {$near : 
                               {$geometry : 
                                   {
                                    type: 'Point', 
                                    coordinates: [<longitude> , <latitude>]       
                                   }
                               }, 
                               $maxDistance: 10*100 
                           }
                     }); 

최근 버전에서는 Spring과 Mongo 4.0.5를 사용하고 있습니다.중요한 것은 인덱스 유형과 위치 데이터 유형입니다.저는 2dsphere, org.springframework.data.mongodb.core.geo 를 사용하고 있습니다.GeoJsonPoint 나중에 거리(미터)가 있는 지오메트리를 사용하여 해당 몽고 쿼리를 생성합니다.

{ "location" : { "$nearSphere" : { "$geometry" : { "type" : "Point", "coordinates" : [18.341772, 43.834183] }, "$maxDistance" : 331.0 } 

언급URL : https://stackoverflow.com/questions/7837731/units-to-use-for-maxdistance-and-mongodb