我正在使用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
}
});
});
}
答案 0 :(得分:1)
您的问题是JavaScript在函数中重新定义“ this”的方式。
最简单的解决方案是使用箭头函数代替常规函数:
this.map.on('load', () => {