嘿,人们这将是我的第一个问题,所以不要打我太难!如何在Nutiteq上的交点坐标上绘制多边形?
在我已经添加多边形之前,但交点有点复杂。具有预定义的i意味着例如两个其他多边形的交点坐标。我正在计算多边形交集的面积,但我也想突出显示该区域。由于
嘿,人们这将是我的第一个问题,所以不要打我太难!如何在Nutiteq上的交点坐标上绘制多边形?
在我已经添加多边形之前,但交点有点复杂。具有预定义的i意味着例如两个其他多边形的交点坐标。我正在计算多边形交集的面积,但我也想突出显示该区域。由于
您将需要两个步骤:从2个多边形的多边形:
一)计算交集。我会使用JTS,你需要在JTS对象中提供数据。
b)突出显示mapview上的交叉点(例如nutiteq)。您可以将生成的多边形作为一个几何元素添加到几何图层中,就像其他多边形一样。使用特殊的造型使其看起来不同。您需要将JTS多边形转换为Nutiteq多边形对象以在地图上显示它
ArrayList<MapPos> keslist = new ArrayList<MapPos>();
for (int i = 0; i < sonuc.getNumPoints(); i++) {
double lon = sonuc.getX(i);
double lat = sonuc.getY(i);
MapPos mPos = new MapPos(lon, lat);
keslist.add(mPos);
}
PolygonStyle polygonStyle = PolygonStyle.builder().setColor(Color.GREEN).build();
StyleSet<PolygonStyle> polygonStyleSet = new StyleSet<PolygonStyle>(null);
polygonStyleSet.setZoomStyle(10, polygonStyle);
Polygon KesisimPol = new Polygon(keslist, new DefaultLabel("Kesişim"), polygonStyleSet, null);
GeometryLayer geomLayer = new GeometryLayer(mapView.getLayers().getBaseLayer().getProjection());
mapView.getLayers().addLayer(geomLayer);
geomLayer.add(KesisimPol);
}
这是我的解决方案。我试过它的作品。现在我试图将这个新的多边形添加到可编辑的对象层。因为我不能在另一个交点过程中使用结果多边形。
我希望这会帮助其他人。
嗨@JaakL感谢您的解释。但我仍然有转换问题。我正在使用General Polygon Clipper库。我能够拥有交叉区域,但问题是将此区域转换为nutiteq多边形。这里是[code](http://i.imgur.com/tO7gvec.png)的截图如果你能弄清楚什么是问题,请让我知道。 – bukowski 2014-10-25 10:08:46