如何在 WKT 几何图形中绘制带孔的多边形
How to draw polygons with hole(s) in WKT geometry
我正在开发一个使用地图的应用程序。我想在 Java Android 中显示带有 "hole" 的多边形。我进行了搜索,但不幸的是,我找不到解决方案。我想我的问题是我无法设置正确的 fillColor。有人可以帮助我吗?
我的结果:
我希望孔的颜色是透明的。
我的代码:
List<ArrayList<LatLng>> multiLatLon;
...
//draw polygon hole
for(int i=0; i<multiLatLon.size(); i++){
poly = new PolygonOptions();
for (int j=0; j<multiLatLon.get(i).size(); j++){
mop.position(multiLatLon.get(i).get(j));
poly.add(multiLatLon.get(i).get(j));
Marker m = mMap.addMarker(mop);
}
poly.fillColor(R.color.colorOcher);
Polygon polygon = mMap.addPolygon(poly);
}
如果您需要更多信息,请告诉我。
解法:
...
poly = new PolygonOptions ();
poly.fillColor (ColorUtils.setAlphaComponent (Color.BLUE, 128));
for (int i = 0; i <multiLatLon.size (); i ++) {
if (i == 0) {
poly.addAll (multiLatLon.get (i));
} else {
poly.addHole (multiLatLon.get (i));
}
}
mMap.addPolygon(poly);
就我而言,我知道第一个点数组 (multiLatLon.get (i)) 定义了多边形几何;而其他的是多边形孔。
注意:我用addAll删除了一个for循环
我认为您正在寻找的解决方案是 PolygonOptions class 中的 addHole 函数。
给那个函数你的分数(如Iterable<LatLng>
)你想要一个洞,你应该好好去。
我不知道你的漏洞值在代码中的确切位置,但基本上,你只需像这样调用该函数:
poly = new PolygonOptions();
// set the polygon's attributes
//...
//Iterable<LatLng> hole = //whatever contains the hole
poly.addHole(hole);
我正在开发一个使用地图的应用程序。我想在 Java Android 中显示带有 "hole" 的多边形。我进行了搜索,但不幸的是,我找不到解决方案。我想我的问题是我无法设置正确的 fillColor。有人可以帮助我吗?
我的结果:
我希望孔的颜色是透明的。
我的代码:
List<ArrayList<LatLng>> multiLatLon;
...
//draw polygon hole
for(int i=0; i<multiLatLon.size(); i++){
poly = new PolygonOptions();
for (int j=0; j<multiLatLon.get(i).size(); j++){
mop.position(multiLatLon.get(i).get(j));
poly.add(multiLatLon.get(i).get(j));
Marker m = mMap.addMarker(mop);
}
poly.fillColor(R.color.colorOcher);
Polygon polygon = mMap.addPolygon(poly);
}
如果您需要更多信息,请告诉我。
解法:
...
poly = new PolygonOptions ();
poly.fillColor (ColorUtils.setAlphaComponent (Color.BLUE, 128));
for (int i = 0; i <multiLatLon.size (); i ++) {
if (i == 0) {
poly.addAll (multiLatLon.get (i));
} else {
poly.addHole (multiLatLon.get (i));
}
}
mMap.addPolygon(poly);
就我而言,我知道第一个点数组 (multiLatLon.get (i)) 定义了多边形几何;而其他的是多边形孔。
注意:我用addAll删除了一个for循环
我认为您正在寻找的解决方案是 PolygonOptions class 中的 addHole 函数。
给那个函数你的分数(如Iterable<LatLng>
)你想要一个洞,你应该好好去。
我不知道你的漏洞值在代码中的确切位置,但基本上,你只需像这样调用该函数:
poly = new PolygonOptions();
// set the polygon's attributes
//...
//Iterable<LatLng> hole = //whatever contains the hole
poly.addHole(hole);