我正在使用Mapbox-GL构建一个地图Web应用程序,它有很多很酷的功能。我已经按照Mapbox网站上的示例设置了按钮来切换底图(即卫星、地形等)。
我的问题是,当我更改样式时,它会删除我加载为图层的多边形并重新加载地图。我从Mongo数据库中加载多边形作为基于用户查询的图层。我希望能够更改基础地图并保留这些图层。
是否有一种方法可以在不重新加载地图的情况下更改样式,或者至少不删除图层?
这是我的切换器代码,与示例相同,但我添加了一个自定义样式的条件:
我的问题是,当我更改样式时,它会删除我加载为图层的多边形并重新加载地图。我从Mongo数据库中加载多边形作为基于用户查询的图层。我希望能够更改基础地图并保留这些图层。
是否有一种方法可以在不重新加载地图的情况下更改样式,或者至少不删除图层?
这是我的切换器代码,与示例相同,但我添加了一个自定义样式的条件:
var layerList = document.getElementById('menu');
var inputs = layerList.getElementsByTagName('input');
function switchLayer(layer) {
var layerId = layer.target.id;
if (layerId === 'outdoors') {
map.setStyle('/outdoors-v8.json');
} else {
map.setStyle('mapbox://styles/mapbox/' + layerId + '-v8');
}
}
for (var i = 0; i < inputs.length; i++) {
inputs[i].onclick = switchLayer;
}
map.on('style.load' ...
函数重新加载它。这样做效果很好。 - Gold MastasetStyle
更换基础图层的方法。 - tristen