2013-08-22 5 views
0

MongoDB 안에 geoJson으로 저장된 폴리곤 목록이 있습니다. 다각형의 하나의 실시 예 : { "지역": "Area123" "경계"{ "타입": "다각형" "좌표"[[[100,12], [120, 12], [120,15], [100,12]]] } } 경계는 2dsphere 인덱스입니다.MongoDB로 주어진 다각형을 완전히 덮는 모든 위치 (geojson으로 저장된 다각형 목록)를 쿼리하는 방법이 있습니까?

$ geoWithin을 사용하여 더 큰 다각형을 지정하고이 큰 다각형 내에 완전히있는 Area123을 반환 할 수 있습니다.

Area123에있는 작은 폴리곤을 지정하고 MongoDB가 Area123을 반환하도록 할 수 있습니까?

답변

1

$geoIntersects은 다른 것들과 교차하는 다각형을 특별히 찾습니다. 당신이 뭔가를 할 수 있습니다

db.<collection>.find({ Boundary : 
         { $geoIntersects : 
          { $geometry : 
           { type : "Polygon" 
           coordinates : [ <coordinates of Area123> ] 
         } } } }) 

그러나이 쿼리는 Area123를 포함하지 않는뿐만 아니라, 내부에있는 사람들이 조금 교차하는 사람들 등

그래서 당신은 확인할 수 있습니다 심지어 다각형을 반환합니다 반환 된 다각형 각각에 대해 Area123 점이 포함되어있는 경우

+0

고맙습니다. 그게 내가 원했던 것입니다. 모든 폴리곤을 포함하고, 그 안에 있고, 교차합니다. $ geoIntersects가 완벽하게 작동합니다! – Tianhai

관련 문제