我对mapbox有疑问-图层上的更新功能。
我们可以在控制台上看到变量“ user”,并在地图上看到两个点。
现在,我从本地数据库中查询数据,后端将GEOJSON传输到前端,变量“ user”已更新,正如我们从控制台中看到的那样。
因此,现在应该更新图层, 我编写了一个click函数,当我单击旧层(点)时,将显示新数据(点)。
map.on('load', function(){
map.addSource('wifiData',{
'type': "geojson",
'data': {
"type": "FeatureCollection",
"features": user,
}
});
map.addLayer({
'id': 'test',
'type': 'circle',
'source' : 'wifiData',
'paint':{
'circle-color': '#00b7bf',
'circle-radius': [
'/',['get','total'],50
],
'circle-stroke-width': 1,
'circle-stroke-color': '#333',
'circle-opacity': 0.3,
}
});
map.on('click','test',function () {
map.getSource('wifiData').setData(user);
})
});
但是控制台显示“错误{{message:“输入数据不是有效的GeoJSON对象。”“ 您能告诉我如何根据新数据更新地图上的图层吗?
答案 0 :(得分:2)
那不是有效的GeoJSON。如果您有多个功能,则需要将它们包装在一个功能集中