Я пытаюсь использовать JTS, чтобы определить, содержит ли один многоугольник другой многоугольник.
У меня есть ресурсы здесь. Как использовать синтаксис? это дает мне ошибки. Следующим шагом является применение содержимого. Если у кого-то есть опыт работы с JTS, было бы полезно.
Вы не можете создать многоугольник просто так. JTS — довольно тяжелый фреймворк, поэтому вам нужно пройти полный путь.
Все начинается с GeometryFactoryдокументов. Он отвечает за создание всех геометрий, это необходимо, потому что он учитывает несколько вещей, таких как, например, PrecisionModel.
Нужно понимать иерархию геометрий, Polygon описывается линией - LineRig или LineString (разница выходит за рамки данного вопроса).
Вы должны понимать, что каждая линия состоит из точек, которые могут быть описаны как Point, так и Coordinate. Итак, если вы хотите создать Polygon
Код будет выглядеть так:
GeometryFactory factory = new GeometryFactory(); //default
Coordinate[] coordinates1 = {
new CoordinateXY(0,0),
new CoordinateXY(1000,0),
new CoordinateXY(1000, 1000),
new CoordinateXY(0, 1000),
new CoordinateXY(0, 0)
};
Coordinate[] coordinates2 = {
new CoordinateXY(500,500),
new CoordinateXY(1000,500),
new CoordinateXY(600, 600),
new CoordinateXY(500, 600),
new CoordinateXY(500, 500)
};
LinearRing linearRing1 = factory.createLinearRing(coordinates1);
LinearRing linearRing2 = factory.createLinearRing(coordinates2);
Polygon polygon1 = factory.createPolygon(linearRing1);
Polygon polygon2 = factory.createPolygon(linearRing2);
assertTrue(polygon1.contains(polygon2));