簡體   English   中英

我們可以使用地理空間 MongoDB 查詢點 [lat,long] 是否位於多邊形內嗎?

[英]Can we check by using geospatial MongoDB query whether a point[lat ,long] lies inside polygon?

我有一個代表社會多邊形的緯度以下數據。我有 5000 條如下類型數據的記錄。我想使用 mongodb 地理空間查詢來檢查給定點(緯度,經度)(12.948,77.66)是否位於內部該社會列表 [5000 條記錄]。我可以使用 mongodb 地理空間查詢來實現它。如果是,那么 mongodb 中的文檔結構應該是什么,一個多邊形的查詢點 Z685A5F7CC75B4796F6C6E00Z38 樣本數據應該是什么?

數據:

"geofence": [
                {
                    "latitude": 12.9475827,
                    "longitude": 77.67696
                },
                {
                    "latitude": 12.9477697,
                    "longitude": 77.674655
                },
                {
                    "latitude": 12.9463797,
                    "longitude": 77.67454
                },
                {
                    "latitude": 12.946131,
                    "longitude": 77.675466
                },
                {
                    "latitude": 12.947066,
                    "longitude": 77.675473
                },
                {
                    "latitude": 12.947198,
                    "longitude": 77.676847
                },
                {
                    "latitude": 12.94757,
                    "longitude": 77.67695
                }
]

找到了答案。

使用以下 java 代碼以 geo-json 多邊形的形式存儲在 MongoDB 中:

GeoJsonPolygon geoJsonPolygon = new GeoJsonPolygon(pointsList);

MongoDB查詢

db.mygate_geofencing.find({polygons:
                 {$geoIntersects:
                     {$geometry:{ "type" : "Point",
                          "coordinates" : [ 12.947874, 77.677494] }
                      }
                  }
             });

Java 代碼:

創建一個點,然后檢查相交的多邊形。

GeoJsonPoint geoJsonPoint = new GeoJsonPoint(truncate(customerLat,6),truncate(customerLng,6));
Query query = new Query().addCriteria(Criteria.where("polygons").intersects(geoJsonPoint));
List<GeoFencing> mygateGeoFencingList = mongoTemplate.find(query, GeoFencing.class);

地理圍欄 Class

@Id
@Field("_id")
private String id;

@Field("polygons")
private GeoJsonPolygon polygons;

@Field("societyName")
private String societyName;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM