缺少 Mapbox 要素 ID 参数

标签 mapbox mapbox-gl-js

我从 mapbox 中获取了这个演示:

https://docs.mapbox.com/mapbox-gl-js/example/hover-styles/

我用自己的 GeoJson 文件替换了演示文件,代码在这里:

https://codepen.io/hiven/pen/rNYdvdg?editors=1112

我得到的错误是:

Error: The feature id parameter must be provided.

我不明白这是什么意思,因为此片段中提供了功能 ID:

   map.addLayer({
        'id': 'state-borders',
        'type': 'line',
        'source': 'states',
        'layout': {},
        'paint': {
            'line-color': '#627BC1',
            'line-width': 2
        }
    });

最佳答案

您必须将 generateId: true 添加到您的 addSource 方法参数中。

map.addSource('states', {
            'type': 'geojson',
            'data': 'https://hiven.github.io/map2/hexagons.geojson',                         
            'generateId': true //This ensures that all features have unique IDs           
        });

关于缺少 Mapbox 要素 ID 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71198235/

相关文章:

mapbox - Turf.js 查找使用 Mapbox GL JS 加载的数据边界框?

javascript - Mapbox GL JS : Refreshing JSON polygons

mapbox-gl-js - 更改 map 样式后重新添加图标(符号)

Mapbox gl绘制将名称添加到多边形

javascript - 如何使用 leafltejs 或 mapbox javascript API 从当前纬度和经度获取海拔

ios - 使用 Swift 在 Mapbox 中为弹出窗口(语音气泡)创建按钮

javascript - mapbox-gl-js:针对给定间距将可见区域和方位调整到给定线

swift - 如何在 MGLMultiPolygonFeature 中找到中心坐标

swift - 如何将自定义注释的底部放置在 Mapbox iOS 中的特定坐标上

flutter - Flutter 上的 map