我已经将我的地图映射如下。映射后,我为我的地图功能添加了一些属性。那么我该如何更新这张地图。我试试这个map.getSource('lines').setData(responseData)
,但我得到了两个重叠的地图。任何帮助表示赞赏。
map.on('load', function() {
map.addSource('lines', {
type: 'geojson',
data: responseData
});
map.addLayer({
'id': 'lines',
'type': 'fill',
'source': 'lines',
'layout': {},
'paint': {
'fill-color': '#4682B4',
'fill-opacity': 0.8,
}
});
map.setPaintProperty('lines', 'fill-color', ['get', 'color'])
})
向已映射的地图添加一些属性。
const links = await fetch(`http://127.0.0.1:8000/api/network/4/edges/`);
const linksData = await links.json();
let ar = map.getSource('lines')._data.features.map((item, i) => {
let currentLayer = linksData.find(
element => element.edge_id === item.properties.edge_id)
item.properties.name = currentLayer.name
item.properties.length = currentLayer.length
item.properties.speed = currentLayer.speed
item.properties.lanes = currentLayer.lanes
})
添加属性后更新地图
map.getSource('lines').setData(responseData)
map.setPaintProperty('lines', 'fill-color', ['interpolate', ['linear'],
['get', 'lanes'], 0, 'rgb(255, 255, 255)', 5, 'rgb(255, 0, 0)'])
但我没有更新地图,而是得到了两张重叠的地图。请问我该如何解决?