문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / / / /

GeoJSON 객체와 교차하는 위치에 대한 쿼리

이 페이지의 내용

  • 이 작업에 대하여
  • 시작하기 전에
  • 절차
  • 자세히 알아보기

GeoJSON 객체 와 교차하는 위치 데이터를 쿼리할 수 있습니다. 예를 들어 주유소의 좌표를 저장하는 애플리케이션을 생각해 보겠습니다. 도로 여행을 나타내는 GeoJSON 라인 스트링 을 생성하고 도로 여행 경로와 교차하는 주유소를 쿼리할 수 있습니다.

GeoJSON 객체와 교차하는 위치 데이터를 쿼리하려면 $geoIntersects 연산자를 사용합니다.

db.<collection>.find( {
<location field> : {
$geoIntersects : {
$geometry : {
type : "<GeoJSON object type>",
coordinates : [ <coordinates> ]
}
}
}
} )
  • 경도와 위도 좌표를 지정할 때는 경도를 먼저 입력한 다음 위도를 입력합니다.

    • 유효한 경도 값은 -180~180입니다(둘 모두 포함).

    • 유효한 위도 값은 -90~90입니다(둘 모두 포함).

  • 위치는 지정된 객체와 하나 이상의 점을 공유하는 경우 객체와 교차합니다. 여기에는 공유된 가장자리가 있는 객체가 포함됩니다.

  • $geoIntersects 지리 공간적 공간 인덱스가 필요하지 않습니다. 그러나 지리 공간적 공간 인덱스는 쿼리 성능을 향상시킵니다. 2dsphere 지리 공간적 인덱스만 $geoIntersects 을 지원합니다. 자세한 내용은 2dsphere 인덱스 만들기를 참조하세요.

이러한 문서가 포함된 gasStations 컬렉션을 만듭니다.

db.gasStations.insertMany( [
{
loc: { type: "Point", coordinates: [ -106.31, 35.65 ] },
state: "New Mexico",
country: "United States",
name: "Horizons Gas Station"
},
{
loc: { type: "Point", coordinates: [ -122.62, 40.75 ] },
state: "California",
country: "United States",
name: "Car and Truck Rest Area"
},
{
loc: { type: "Point", coordinates: [ -72.71, 44.15 ] },
state: "Vermont",
country: "United States",
name: "Ready Gas and Snacks"
}
] )

다음 $geoIntersects 쿼리는 4개의 점을 포함하는 LineString 를 지정하고 해당 선과 교차하는 문서를 반환합니다.

db.gasStations.find( {
loc: {
$geoIntersects: {
$geometry: {
type: "LineString",
coordinates: [
[ -105.82, 33.87 ],
[ -106.01, 34.09 ],
[ -106.31, 35.65 ],
[ -107.39, 35.98 ]
]
}
}
}
} )

출력:

[
{
_id: ObjectId("63f658d45e5eefbdfef81ca4"),
loc: { type: 'Point', coordinates: [ -106.31, 35.65 ] },
state: 'New Mexico',
country: 'United States',
name: 'Horizons Gas Station'
}
]

돌아가기

분야