Я пытаюсь читать многоугольники WKT (сотни тысяч из них) и объединять их в более крупные, «содержащие» многоугольники, чтобы уменьшить размер данных. Для краткости я не упомянул цикл, который хотел бы использовать, поэтому два полигона должны служить примером.
Я никогда не работал с JTS, поэтому мой наивный подход таков:
static Geometry combineIntoOneGeometry()
{
WKTReader wkt = new WKTReader();
Geometry[] geometries;
try
{
Geometry polygon1 = (Geometry) wkt.read("...");
Geometry polygon2 = (Geometry) wkt.read("...");
geometries = new Geometry[] { }; //add them here ?
geometries.add(polygon1, polygon2); //add doesn't exist, of course...
}
catch (ParseException e)
{
e.printStackTrace();
}
GeometryCollection gc = new GeometryFactory().createGeometryCollection(geometries); //can't instantiate GeometryFactory
return gc.union();
}
Есть несколько проблем:
- Я не могу создать экземпляр GeometryCollection
- GeometryCollection, похоже, не имеет метода для принятия / добавления геометрии - как я могу «заполнить» GeometryCollection геометриями?
- Массив геометрий не может быть добавлен, и я не нашел способа сделать это через конструктор.
- Я не могу назвать союз по геометрии
Помимо вопроса: если некоторые из полигонов, которые я хочу объединить, будут разъединенными, приведет ли это к мультиполигону? Было бы хорошо, просто любопытно.
Спасибо !