我有以下其中包含一个具有坐标多边形GeoJSON的数据文件。
[
{
"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
的帮助下,我解析JSON在com.vividsolutions.jts.geom.Polygon
类的坐标为如下。而且还检查是否Coordinate(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);
但是我的程序总是给我下面的结果给出的坐标是不多边形。
类型=多边形
一),你可以看到为什么pointIsInPolygon
是假的。我缺少的东西吗?
B)什么Cordinate我应该给这里,所以使qazxsw POI qazxsw POI结果
C)是否有任何其他的方法来分析给定的JSON文件中的多边形,并确认,如果一个坐标在于多边形或不?
你点在多边形外所以结果是正确的。在这里,红点是你的,如果你改变它是pointIsInPolygon
(绿点),则返回true。
true