【问题标题】:Custom TileProvider with Polygon in Android maps在 Android 地图中使用多边形自定义 TileProvider
【发布时间】:2016-01-19 11:16:04
【问题描述】:

我在 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上吗?

【问题讨论】:

    标签: android google-maps overlay polygon


    【解决方案1】:

    哦,好吧,解决方法很简单,如果以后还有其他人遇到问题:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 2013-01-24
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多