Java GeoJSON:检查地理坐标是否在多边形内
我有以下GeoJSON数据文件,其中包含一个带坐标的多边形Java GeoJSON:检查地理坐标是否在多边形内,java,geometry,geojson,geotools,point-in-polygon,Java,Geometry,Geojson,Geotools,Point In Polygon,我有以下GeoJSON数据文件,其中包含一个带坐标的多边形 [ { "geometry": { "type": "Polygon", "coordinates": [ [ [ 9.137248, 48.790411 ], [ 9.137248, 48.790263
[
{
"geometry": {
"type": "Polygon",
"coordinates":
[
[
[
9.137248,
48.790411
],
[
9.137248,
48.790263
],
[
9.13695,
48.790263
],
[
9.137248,
48.790411
]
]
]
}
}
]
在org.geotools.geojson.geom.GeometryJSON
的帮助下,我正在解析com.livitsolutions.jts.geom.Polygon
类中的JSON坐标,如下所示。
并检查坐标(9.13710,48.790360)
是否在该多边形内
GeometryJSON g = new GeometryJSON();
com.vividsolutions.jts.geom.Polygon polygon = g.readPolygon(new File(fileLocation));
System.out.println("Type="+polygon.getGeometryType());
GeometryFactory gf = new GeometryFactory();
boolean pointIsInPolygon = polygon.contains(gf.createPoint(new Coordinate(9.13710, 48.790360)));
System.out.println("Point is in polygon="+pointIsInPolygon);
但我的程序总是给出以下结果,即给定的坐标不在多边形中
结果
类型=多边形
点位于多边形中=false
a) 你能明白为什么点隐多边形
为假吗。我错过什么了吗
b) 我应该在这里给出什么样的坐标,使点为多边形
结果为真
c)是否有其他方法来解析多边形中的给定JSON文件,并确认坐标是否位于多边形中?您的点位于多边形之外,因此结果是正确的。如果将红点更改为
gf.createPoint(新坐标(9.13716433655009652,48.79030985534630815)),则红点就是您的代码>(绿色点)返回true
您的点位于多边形之外,因此结果是正确的。如果将红点更改为gf.createPoint(新坐标(9.13716433655009652,48.79030985534630815)),则红点就是您的代码>(绿色点)返回true