Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android地图中带多边形的自定义TileProvider_Android_Google Maps_Overlay_Polygon - Fatal编程技术网

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

Android地图中带多边形的自定义TileProvider,android,google-maps,overlay,polygon,Android,Google Maps,Overlay,Polygon,我在Android地图上绘制多边形时遇到问题。 问题是我有平铺,所以多边形在覆盖层下面 我正在谷歌地图上画一个多边形,如下所示: map.addPolygon(new PolygonOptions().add(points).strokeColor(Color.RED).strokeWidth(3f)); map.animateCamera(CameraUpdateFactory.newLatLngZoom(points[0], 18)); 在瓷砖开始加载之前,我可以看到多边形,但之后它就消失

我在Android地图上绘制多边形时遇到问题。 问题是我有平铺,所以多边形在覆盖层下面

我正在谷歌地图上画一个多边形,如下所示:

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上绘制多边形?如果可能的话,我可以在数据层上绘制它?

哦,如果将来有人会遇到问题,那么解决方案非常简单:

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