2

不明なベクター タイル サービスを追加するときに、ソースのメタ情報を取得してレイヤーの ID とレイヤーのタイプを一覧表示できる機能を用意できますか? これらは、ベクター サービスを正しい方法でスタイル設定するのに役立ち、さまざまなレイヤー (点 - 円、多角形 - 塗りつぶし、線 - 線) の既定のスタイルを作成できると思います。

4

2 に答える 2

2

を呼び出しmap.getStyle().layersて、現在のスタイルで定義されているレイヤーを見つけることができます。

各レイヤーのidとを取得する方法は次のとおりです。type

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/light-v9',
    zoom: 13,
    center: [-122.447303, 37.753574]
});

map.on('load', function () {    
    var layersMeta = map.getStyle().layers
        .map(function(layer) { 
            return [layer.id, layer.type];
        });
   console.log(layersMeta);   
});

そして、これが対応する jsfiddleです。コンソールを見てください。

于 2016-06-17T10:16:39.927 に答える
1

残念ながら、ベクター タイル ソース内のすべてのレイヤーを一覧表示する標準的な方法はありません。Mapbox ソースはvector_layersTileJSON でオブジェクトを提供しますが、この機能は標準ではないため、GL JS API 内では使用できません。

于 2016-06-17T18:46:08.810 に答える