2017-02-26 105 views
0

我需要地理空間查詢幫助。mongodb java驅動程序3.4.x geoquery

我有兩個集合:分數和的MultiPolygon

我想檢索包含在特定的MultiPolygon所有點。

兩個元素的結構是:

{_id : someID, "geometry" : { "type" : "Point", "coordinates" : [ 12.54638671875, 41.85319643776675 ] }} 

{_id: "id", "type": "MultiPolygon", 
"coordinates": [[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],[[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],[[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]]} 

這樣做,我就組合區集合的查詢,以便檢索,我要用來進行geoIntersect查詢,但沒有任何成功的形狀。

特別是我有問題將Datacenter文檔的座標轉換爲Filter類所需的BSON元素。

請問有人可以幫我嗎?

謝謝

回答

0

可以使用的MultiPolygon對象的MongoDB驅動的這樣

List<PolygonCoordinates> polygonList = new ArrayList<>(); 
// Add your Positions in polygonList. 
MultiPolygon multiPolygon = new MultiPolygon(polygonList); 

this.mongoCollection.find(geoIntersects("geometry", multiPolygon)); 

你能找到的MongoDB的JavaDoc的更多信息:https://static.javadoc.io/org.mongodb/mongo-java-driver/3.2.0-rc0/com/mongodb/client/model/geojson/MultiPolygon.html

+0

如果我回答你的問題,請註冊我的帖子並點擊答案圖標;) –