2016-01-19 2 views
1

У меня проблемы с рисованием многоугольника на карте Android. Проблема в том, что у меня есть TileOverlays, поэтому многоугольник является любопытным под наложениями.Пользовательский TileProvider с Polygon в Android-картах

Я рисую полигон на GoogleMap как это:

map.addPolygon(new PolygonOptions().add(points).strokeColor(Color.RED).strokeWidth(3f)); 
map.animateCamera(CameraUpdateFactory.newLatLngZoom(points[0], 18)); 

Я могу видеть полигон, прежде чем плитки начинают загружаться, но потом это прошло. Я хотел бы добиться, чтобы многоугольник был нарисован над TileProvider.

У меня есть пользовательский TileProvider, который выполняет три слоя: кешированный слой, пользовательский слой карты и слой данных, который является частично прозрачным.

Когда карта нагрузок, я создаю все три слоя:

cacheLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addCache())); 
mapLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addMap())); 
dataLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addData())); 

Как я могу добиться того, что полигон над ними? Или, по крайней мере, над слоем карты? Должен ли я создать другое наложение только для многоугольника? Если да, то как я могу нарисовать полигон на TileProvider? Если это возможно, я мог бы просто нарисовать его на dataLayer?

ответ

2

Ну, решение довольно просто, если кто-то будет иметь проблемы в будущем:

cacheLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addCache()).zIndex(1)); 
mapLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addMap()).zIndex(2)); 
dataLayer = map.addTileOverlay(new TileOverlayOptions().tileProvider(addData()).zIndex(3)); 

И для полигона:

map.addPolygon(new PolygonOptions().add(points).strokeColor(Color.RED).strokeWidth(3f).zIndex(4)); 
map.animateCamera(CameraUpdateFactory.newLatLngZoom(points[0], 18)); 
+0

Да, ZIndex работает для меня. благодаря –

Смежные вопросы