我正在使用nutiteq库绘制多边形并使用.getVertexList()命令获取多边形的坐标。然后我将这些坐标转换为数组列表。然后我将这些坐标转换为另一个多边形列表。 GPC正在计算交点,并集,异或区域的整数值。然后我需要突出显示过程区域,因此我需要处理区域坐标,但我无法直接从GPC获取这些坐标。
我用于区域计算的代码如下。我该怎么做才能得到结果多边形的坐标? (我不能直接按照你的方式转换坐标here ...)
提前致谢。
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));
答案 0 :(得分:0)
结果多边形似乎具有您需要的所有方法:
您可以根据此数据构建新的Nutiteq Polygon,创建外部MapPos列表以及内部多边形(孔)MapPos列表列表。什么是X和Y的值,它们是否需要进一步处理,是您可以调查的另一个问题。