Как получить координаты области пересечения двух полигонов в General Polygon Clipper(GPC)?

Я использую библиотеку nutiteq для рисования полигонов и получения координат полигонов с помощью команды.getVertexList(). Затем я приведу эти координаты к списку массивов. Затем я приведу эти координаты к другому списку многоугольников. GPC вычисляет целочисленные значения пересечений, объединений, XOR и разностей областей. Затем мне нужно выделить область обработки, поэтому мне нужны координаты обработанных областей, но я не могу получить эти координаты напрямую из GPC.

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

Заранее спасибо.

public void IntersectionButton(View view) {
VectorElement selectedElement = mapView.getSelectedElement();
List<?> VisibleElements = selectedElement.getLayer().getVisibleElements();
ArrayList<Poly> polyList = new ArrayList<Poly>();
for (Object obj : VisibleElements) {
if (obj instanceof Polygon) {
            Polygon poly = (Polygon) obj;
            List<MapPos> geoList = poly.getVertexList();
 Poly p = new PolyDefault();
            for (MapPos pos : geoList) {
                p.add(pos.x, pos.y);
                }
             polyList.add(p);
         }

    }
 PolyDefault result = (PolyDefault) Clip.intersection(polyList.get(0), polyList.get(1));
 int area = (int) (((int) result.getArea()) * (0.57417));

1 ответ

Полученный полигон имеет все необходимые методы:

  1. getNumPoints (), чтобы получить количество точек внешнего многоугольника.
  2. getX (i), чтобы получить X определенной внешней точки многоугольника, и getY(i) для Y.
  3. getNumInnerPoly (), чтобы получить количество отверстий в многоугольнике
  4. getInnerPoly (i), чтобы получить определенную дыру. Вы проходите через отверстие аналогично внешнему многоугольнику

Вы можете построить новый полигон Nutiteq из этих данных, создать список MapPos для внешнего и список списка MapPos для внутренних полигонов (отверстий). Каковы значения X и Y, нуждаются ли они в дальнейшей обработке, это другой вопрос, который вы можете исследовать.

Другие вопросы по тегам