android - 平铺叠加问题

标签 android android-maps-v2 mapbox

因此,当我使用 MapBox map 时,图 block 会覆盖在我的折线和多边形上,因此看不到它们。

有什么办法可以改变这种行为吗?

这是我正在使用的代码:

public class MapBoxOnlineTileProvider extends UrlTileProvider {

    private static final String[] FORMATS;

    static {
        final String[] servers = new String[] { "a", "b", "c", "d" };
        final String[] formats = new String[servers.length];
        for (int i = 0; i < servers.length; i++) {
            formats[i] = String.format(
                    "%%s://%s.tiles.mapbox.com/v3/%%s/%%d/%%d/%%d.png",
                    servers[i]);
        }
        FORMATS = formats;
    }

    // ------------------------------------------------------------------------
    // Instance Variables
    // ------------------------------------------------------------------------

    private String mMapIdentifier;
    private boolean mUseSSL;

    // ------------------------------------------------------------------------
    // Constructors
    // ------------------------------------------------------------------------

    public MapBoxOnlineTileProvider(final String mapIdentifier) {
        this(mapIdentifier, false);
    }

    public MapBoxOnlineTileProvider(final String mapIdentifier,
            final boolean useSSL) {
        super(256, 256);

        this.mMapIdentifier = mapIdentifier;
        this.mUseSSL = useSSL;
    }

    // ------------------------------------------------------------------------
    // Public Methods
    // ------------------------------------------------------------------------

    public String getMapIdentifier() {
        return this.mMapIdentifier;
    }

    public void setMapIdentifier(final String anIdentifier) {
        this.mMapIdentifier = anIdentifier;
    }

    public boolean isSSLEnabled() {
        return this.mUseSSL;
    }

    public void setSSLEnabled(final boolean enableSSL) {
        this.mUseSSL = enableSSL;
    }

    @Override
    public URL getTileUrl(final int x, final int y, final int z) {
        final String f = FORMATS[new Random().nextInt(FORMATS.length)];
        final String p = this.mUseSSL ? "https" : "http";
        try {
            System.out.println(String
                    .format(f, p, this.mMapIdentifier, z, x, y));
            return new URL(String.format(f, p, this.mMapIdentifier, z, x, y));
        } catch (final MalformedURLException e) {
            e.printStackTrace();
            return null;
        }
    }

}

设置叠加层:

final MapBoxOnlineTileProvider provider = new MapBoxOnlineTileProvider(MAP_ID);
final TileOverlayOptions overlay = new TileOverlayOptions().tileProvider(provider);
mMap.addTileOverlay(overlay);

最佳答案

您正在寻找TileOverlayOptions.zIndex 。这也适用于其他可视对象(标记除外),并且可以在使用 TileOverlay.setZIndex 创建对象后进行修改.

关于android - 平铺叠加问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653674/

相关文章:

java - 带有标记的 Google Maps Android API 问题

react-native - Mapbox React Native,ShapeSource#images 已弃用,请使用 Images#images

android - 如何插入 .gif 格式的图像?

java - achartengine饼图未在 ScrollView 中呈现

android - 如何将 Activity 转换为 fragment android

android - 为什么我的位置不断变化,是我的代码不正确吗?

android - 将标记从屏幕顶部缓慢放置到 android map V2 上的位置

javascript - Mapbox GL JS - "Flat"标记

python - MapBox 使用的标准 GPS 纬度/经度/缩放坐标

android - 无法在 android Camera 对象上设置自动闪光