0

我正在使用 nutiteq 库来绘制多边形并使用 .getVertexList() 命令获取多边形的坐标。然后我将这些坐标转换为数组列表。然后我将这些坐标投射到另一个多边形列表中。GPC 正在计算交集、并集、异或和差异区域整数值。然后我需要突出显示处理区域,因此我需要处理区域坐标,但我无法直接从 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));
4

1 回答 1

0

结果多边形似乎具有您需要的所有方法:

  1. getNumPoints() 获取外部多边形点的数量。
  2. getX(i) 获取特定外部多边形点的 X,getY(i) 获取 Y。
  3. getNumInnerPoly() 获取多边形中的孔数
  4. getInnerPoly(i) 获取特定的孔。您以类似于外部多边形的方式迭代孔

您可以从该数据构建新的 Nutiteq 多边形,为外部创建 MapPos 列表,为内部多边形(孔)创建 MapPos 列表。X 和 Y 的值是多少,它们是否需要进一步处理,是您可以调查的另一个问题。

于 2014-10-29T15:29:18.460 回答