我在地图上绘制了一条线。它最初在以下代码的IF部分中创建,并在ELSE部分中更新。但是,UI永远不会使用setData()进行更新。我有一个多边形类似的代码,它工作正常。有什么问题?
if (!moDistanceSource) {
moDistanceSource = {
'type': 'FeatureCollection',
'features': [{
'type': 'Feature',
'geometry': {
'type': 'LineString',
'coordinates': [[-120, 49], [-118, 40]]
}
}]
};
moMap.addSource('DistanceSource', {
"type": "geojson",
"data": moDistanceSource
});
moMap.addLayer({
'id': 'DistanceLayer',
'type': 'line',
'source': 'DistanceSource',
'layout': {
"line-join": "round",
"line-cap": "round"
},
'paint': {
"line-color": "#888",
"line-width": 3
}
});
console.log('add distance layer');
}
else {
moDistanceSource.features[0].geometry.coordinates = [[-110,59],[-108,50]];
console.log('maDistancePoints', maDistancePoints);
moMap.getSource('DistanceSource').setData(moDistanceSource);
}