Использование многоугольника для VoronoiDiagramBuilder.setClipEnvelope вместо прямоугольника

Я создаю многоугольники Вороного из большого количества точек (координат), используя набор топологии JTS.

VoronoiDiagramBuilder voronoi=new VoronoiDiagramBuilder();
voronoi.setTolerance(0.001);
voronoi.setSites(coordinates);
voronoi.setClipEnvelope(...);
Geometry geo =voronoi.getDiagram(new GeometryFactory()); 

метод voronoi.setClipEnvelope принимает только прямоугольник (ограничивающую рамку), однако мне нужен пользовательский многоугольник вместо ограничивающей рамки, чтобы не генерировались диаграммы voronoi, которые больше пользовательского многоугольника.

Это возможно? используя этот API или, возможно, другой компонент.


person Jeryl Cook    schedule 08.01.2017    source источник


Ответы (1)


Лучший (единственный?) способ сделать это — вычислить диаграмму Вороного для оболочки, а затем прикрепить ее к вашему многоугольнику, используя что-то вроде:

Geometry out = geo.intersection(polygon);
person Ian Turton    schedule 09.01.2017
comment
многоугольник в вашем ответе ... мой «пользовательский» многоугольник? - person Jeryl Cook; 09.01.2017