Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以使用地理空间MongoDB查询检查点[lat,long]是否位于多边形内吗?_Java_Mongodb - Fatal编程技术网

Java 我们可以使用地理空间MongoDB查询检查点[lat,long]是否位于多边形内吗?

Java 我们可以使用地理空间MongoDB查询检查点[lat,long]是否位于多边形内吗?,java,mongodb,Java,Mongodb,我有一个lat long的下方数据,它代表一个社会的多边形。我有5000条如下类型的数据记录。我想使用mongodb地理空间查询来检查给定点(lat,long)(12.948,77.66)是否位于该社会列表中[5000条记录]。我可以使用mongodb地理空间查询来实现它吗?如果是,那么mongodb中的文档结构应该是什么?mongodb查询应该是什么?下面是一个多边形点的示例数据 数据: 找到了答案 使用以下java代码以geo json多边形的形式存储在MongoDB中: GeoJsonPo

我有一个lat long的下方数据,它代表一个社会的多边形。我有5000条如下类型的数据记录。我想使用mongodb地理空间查询来检查给定点(lat,long)(12.948,77.66)是否位于该社会列表中[5000条记录]。我可以使用mongodb地理空间查询来实现它吗?如果是,那么mongodb中的文档结构应该是什么?mongodb查询应该是什么?下面是一个多边形点的示例数据

数据:


找到了答案

使用以下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);
尝试使用$GEOIN
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);
@Id
@Field("_id")
private String id;

@Field("polygons")
private GeoJsonPolygon polygons;

@Field("societyName")
private String societyName;