Я разрабатываю приложение, которое использует карту. Я хочу показать многоугольник с «дыркой» в Java Android. Я искал, но, к сожалению, не нашел решения. Я думаю, что моя проблема в том, что я не могу установить правильный 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