У меня следующий файл данных 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);
Но моя программа всегда дает мне следующий результат: указанная координата не в полигоне.
Результат
Тип = Полигон
Точка находится вpolygon = false
a) Не могли бы вы понять, почему pointIsInPolygon
неверно.Я что-то упустил?
b) Какую координату я должен здесь дать, чтобы результат pointIsInPolygon
привел к true
c) Есть ли другой способ анализа данного файла JSON в Polygon?и подтвердите, что если координата лежит в многоугольнике или нет?