按ISO 3166-1 alpha-3国家/地区代码过滤边界图块

时间:2020-03-08 22:10:55

标签: mapbox mapbox-gl

是否可以通过ISO 3166-1 alpha-3国家/地区代码来过滤边界图块?如果是,那又如何?我已经搜索了文档,但没有找到任何东西。这是我目前通过2个字符的国家/地区代码iso_3166_1过滤图块的方式。我已尝试将其从'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');
    });
});

1 个答案:

答案 0 :(得分:1)

Mapbox Boundaries v3磁贴集在实际磁贴中仅具有一些功能,对于多边形而言,它们是:

  • id
  • iso_3166_1
  • 世界观

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

其余数据存储在购买磁贴组时发送给您的补充查询表中。您可以在此处查看所有可用属性: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/