Android 地图中带有多边形的自定义 TileProvider
Custom TileProvider with Polygon in Android maps
我在 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上绘制吗?
哦,好吧,解决方法很简单,如果以后还有人遇到这个问题:
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));
我在 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上绘制吗?
哦,好吧,解决方法很简单,如果以后还有人遇到这个问题:
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));