2014-10-22 73 views
0

嘿,人们这将是我的第一个问题,所以不要打我太难!如何在Nutiteq上的交点坐标上绘制多边形?

在我已经添加多边形之前,但交点有点复杂。具有预定义的i意味着例如两个其他多边形的交点坐标。我正在计算多边形交集的面积,但我也想突出显示该区域。由于

回答

0

您将需要两个步骤:从2个多边形的多边形:

一)计算交集。我会使用JTS,你需要在JTS对象中提供数据。

b)突出显示mapview上的交叉点(例如nutiteq)。您可以将生成的多边形作为一个几何元素添加到几何图层中,就像其他多边形一样。使用特殊的造型使其看起来不同。您需要将JTS多边形转换为Nutiteq多边形对象以在地图上显示它

+0

嗨@JaakL感谢您的解释。但我仍然有转换问题。我正在使用General Polygon Clipper库。我能够拥有交叉区域,但问题是将此区域转换为nutiteq多边形。这里是[code](http://i.imgur.com/tO7gvec.png)的截图如果你能弄清楚什么是问题,请让我知道。 – bukowski 2014-10-25 10:08:46

0
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); 
} 

这是我的解决方案。我试过它的作品。现在我试图将这个新的多边形添加到可编辑的对象层。因为我不能在另一个交点过程中使用结果多边形。

我希望这会帮助其他人。