如何解决 mapbox gl js 上的 addSource 错误

how to solve addSource error on mapbox gl js

我正在使用 mapbox gl js 库从本地文件加载本地 geojson 文件。当我尝试在地图上加载它时出现错误 "addSource not defined".

 showgeojson()
    {
      var data='./assets/nyc_speed-3.geojson';
      this.map.on('load', function () {

        this.map.addSource('scmpd-precinct-polygons', {
          type: 'geojson',
          data: './assets/nyc_Speed_3.geojson'
        });

        this.map.addLayer({
            'id': 'scmpd-precinct-polygons',
            'type': 'fill',
            'source': 'scmpd-precinct-polygons',
            'layout': {},
            'paint': {
                'fill-color': '#088',
                'fill-opacity': 0.8
            }
        });
    });
    }

您的问题是 JavaScript 在函数中重新定义 "this" 的方式。

最简单的解决方案是使用箭头函数代替常规函数:

this.map.on('load', () => {