【发布时间】:2020-11-08 07:15:11
【问题描述】:
首先,我是 Mapbox 的初学者,我在更改地图样式时遇到了问题。更改样式时,我正在上传资源,但无法向地图添加新图层。
我正在这样创建我的资源。
function addRoadsSource(){
map.addSource('roads3',{
'type':'geojson',
'data': datas.roadsInfo // datas --> roadsInfo includes roads geoFile Data
});
}
并将它们添加为图层以使用 uploadRoads() 进行映射
function uploadRoads() {
map.on('load',function() {
addRoadsSource();
showRoads();
});
}
这里还有 showRoads() 函数
function showRoads() {
map.addLayer({
'id': 'roadsLayer',
'type': 'line',
'source': 'roads3',
'filter': ['==', '$type', 'LineString'],
'paint' : {
'line-color' : '#33cc33',
'line-width' : 5
}
});
}
但是当我将地图样式从 street-v11 更改为 dark-v10 时,所有来源都消失了。根据我的研究,这是由于 mapbox 的结构(Mapbox-GL setStyle removes layers)而发生的。而且大家都说我需要重新上传资源。但是我已经使用 addRoadsSource() 函数上传了我的资源。然后,当我使用 uploadRoads() 将新图层添加到新样式时,地图上不会出现道路。当我使用 map.style.sources() 查看新样式的源时,我可以看到源已正确加载,但没有出现图层。我希望我能解释我的问题。我查看了许多来源,包括 Github 问题,但没有一个对我有用。如果您需要我的代码或 geojson 文件中的任何内容,我可以添加它。
【问题讨论】:
-
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?
标签: javascript mapbox mapbox-gl-js