按 ISO 3166-1 alpha-3 国家代码过滤边界瓦片集

Filtering boundary tilesets by ISO 3166-1 alpha-3 country code

是否可以通过 ISO 3166-1 alpha-3 国家/地区代码过滤边界图块集?如果是,那又如何呢?我在文档中搜索过,但没有找到任何东西。这就是我目前通过 2 个字符的国家/地区代码 iso_3166_1 过滤 tileset 的方式。我已尝试将其从 'iso_3166_1' 更改为 'iso_3166_1_alpha_3',正如在引用不同内容时发现的那样,但它不起作用。

mapBox.on('load', () => {
    mapBox.addSource('admin-1', {
        type: 'vector',
        url: 'mapbox://mapbox.boundaries-adm1-v3'
    });

    var countriesToDisplay: Array<string> = ['US', 'NZ']

    countriesToDisplay.forEach((countryCode: string) => {
        mapBox.addLayer({
            id: 'admin-1-fill-' + countryCode,
            type: 'fill',
            source: 'admin-1',
            'source-layer': 'boundaries_admin_1',
            filter: ['any', ['all', ['==', ['get', 'iso_3166_1'], countryCode]]],
            paint: { 'fill-color': '#044e9c' }
        }, 'waterway-label');
    });
});

Mapbox Boundaries v3 瓦片集在实际瓦片中只有几个特征,对于多边形,它们是:

  • id
  • iso_3166_1
  • 世界观

在此处查看完整的参考文档:https://docs.mapbox.com/vector-tiles/reference/mapbox-boundaries-v3/#polygon-tileset-reference

其余数据存储在您购买 tileset 时发送给您的补充查找表中。您可以在此处查看所有可用属性:https://docs.mapbox.com/help/tutorials/get-started-mapbox-boundaries/#feature-lookup-tables

您将需要执行数据连接,以便您可以在 javascript 中访问这些查找表中的数据。这里有一个教程可以引导您完成该操作:https://docs.mapbox.com/help/tutorials/data-joins-with-mapbox-boundaries/