Android地图中带有多边形的自定义TileProvider

时间:2016-01-19 11:16:05

标签: android google-maps overlay polygon

我在Android地图上绘制多边形时遇到问题。 问题是我有TileOverlays所以多边形在叠加下是有点的。

我在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上绘制它?

1 个答案:

答案 0 :(得分:3)

哦,嗯,解决方案非常简单,如果其他人将来会遇到问题:

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