2014-10-22 94 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); 
} 

這是我的解決方案。我試過它的作品。現在我試圖將這個新的多邊形添加到可編輯的對象層。因爲我不能在另一個交點過程中使用結果多邊形。

我希望這會幫助其他人。