Mapbox GL- JS: добавление нового набора плиток под метками - PullRequest
1 голос
/ 24 января 2020

У меня есть набор плиток, который я загружаю в свою карту (карта называется topleftmap ). Я хочу, чтобы город и другие метки загружались поверх плиток, а не - как в этом примере из Mapbox: https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-stack/

Как мне это сделать с наборами плиток? У меня есть внешний JS файл, который я использую для загрузки в наборы плиток следующим образом:

topleftmapbox.addLayer({
    "id": "currentProduct",
    "type": "raster",
    "source": {
        "type": "raster",
        "tiles": ["tiles/" + productSelection + "/" + productLocation + "/{z}/{x}/{y}.png"],
        "minzoom": 8,
        "maxzoom": 10,
        "scheme": "tms",
        "tileSize": 256,

    }});

Так что, конечно, это работает нормально, но метки находятся под плитками. Я попробовал это ниже (на примере Mapbox), но, похоже, он не работает:

var layers = topleftmapbox.getStyle().layers;
    // Find the index of the first symbol layer in the map style
    var firstSymbolId;
    for (var i = 0; i < layers.length; i++) {
        if (layers[i].type === 'symbol') {
            firstSymbolId = layers[i].id;
            break;
        }
    }

topleftmapbox.addLayer({
    "id": "currentProduct",
    "type": "raster",
    "source": {
        "type": "raster",
        "tiles": ["tiles/" + productSelection + "/" + productLocation + "/{z}/{x}/{y}.png"],
        "minzoom": 8,
        "maxzoom": 10,
        "scheme": "tms",
        "tileSize": 256,

    },firstSymbolId});

Наконец, вот изображение, показывающее, как оно выглядит. Мои плитки немного прозрачны, но метки должны быть ярко-белыми, как те, что находятся вне данных. Есть мысли?

enter image description here

1 Ответ

1 голос
/ 24 января 2020

Вы все делаете правильно. У вас просто небольшая синтаксическая ошибка:

},firstSymbolId});

Это должно быть:

}}, firstSymbolId);
...