Javascript 如何更改mapbox中的地图样式而不更改插入的geoJson

Javascript 如何更改mapbox中的地图样式而不更改插入的geoJson,javascript,styles,maps,mapbox,geojson,Javascript,Styles,Maps,Mapbox,Geojson,我曾尝试过在运行时使用无线电波盒将街道等地图样式更改为卫星、黑暗、明亮等。但是,当我将geojson文件加载到地图时,它仅显示在所选的当前地图样式上。当我更改地图样式时,geoJson文件就消失了。是否有任何方法可以在所有地图样式中保留geoJson文件,即使在更改样式时也是如此 var映射; mapboxgl.accessToken='pk.eyj1ijoic2fkaxf1zsisimeiojjajlrc3v0bjkxagxlmznzmjbwdmz3nmf1in0.KOe_ASpXmNUF_

我曾尝试过在运行时使用无线电波盒将街道等地图样式更改为卫星、黑暗、明亮等。但是,当我将geojson文件加载到地图时,它仅显示在所选的当前地图样式上。当我更改地图样式时,geoJson文件就消失了。是否有任何方法可以在所有地图样式中保留geoJson文件,即使在更改样式时也是如此

var映射;
mapboxgl.accessToken='pk.eyj1ijoic2fkaxf1zsisimeiojjajlrc3v0bjkxagxlmznzmjbwdmz3nmf1in0.KOe_ASpXmNUF_TmN6h2CHw';
map=新的mapboxgl.map({
容器:'映射',//容器元素id
风格:'mapbox://styles/mapbox/light-v9',
中心:[90.899,26.372],//初始地图中心位于[北美洲,伦敦]
缩放:7
});
var layerList=document.getElementById('menu');
var inputs=layerList.getElementsByTagName('input');
功能切换层(层){
var layerId=layer.target.id;
map.setStyle('mapbox://styles/mapbox/“+layerId+”-v9');
}
对于(变量i=0;i

更改地图的样式
身体{
保证金:0;
填充:0;
}
#地图{
位置:绝对位置;
排名:0;
底部:0;
宽度:100%;
}


加载geoJson 基本的 街道 光线充足的 光 黑暗的 人造卫星
这将被反复记录。它似乎在按设计工作

我认为,尽管这听起来有悖常理,但最好是重新绘制。我在这里引用海报

此后,我删除了类级样式层和源变量,并在mapViewDidFinishLoadingMap中重新加载每次样式更改的数据。虽然不方便,但至少这样比较稳定。对不起,吵闹了。期待这一功能


这将被反复记录。它似乎在按设计工作

我认为,尽管这听起来有悖常理,但最好是重新绘制。我在这里引用海报

此后,我删除了类级样式层和源变量,并在mapViewDidFinishLoadingMap中重新加载每次样式更改的数据。虽然不方便,但至少这样比较稳定。对不起,吵闹了。期待这一功能


您必须使用新样式再次实例化地图

// Initially
var map = new mapboxgl.Map({
  // Whatever options
  style: 'some-style'
});

// On style change, remove map and re-initialize
map.remove();
map = new mapboxgl.Map({
  // Options,
  style: 'some-other-style'
});

您必须使用新样式再次实例化地图

// Initially
var map = new mapboxgl.Map({
  // Whatever options
  style: 'some-style'
});

// On style change, remove map and re-initialize
map.remove();
map = new mapboxgl.Map({
  // Options,
  style: 'some-other-style'
});
我们可以使用“Mapbox js”来更改样式,而无需更改其中的geoJson文件

要添加样式,请执行以下操作:

对于添加geoJson文件:

我们可以使用“Mapbox js”来更改样式,而无需更改其中的geoJson文件

要添加样式,请执行以下操作:


对于添加geoJson文件:

当我删除映射并重新初始化它时,加载的整个geoJson文件都会被删除。我需要geoJson文件在地图上,即使我们改变了风格。你能给我一个建议吗?感谢您的回复。您只需再次应用geojson层。因为一旦你重新初始化地图,它几乎是一块空白的石板。当我移除地图并重新初始化它时,加载的整个geojson文件被移除。我需要geoJson文件在地图上,即使我们改变了风格。你能给我一个建议吗?感谢您的回复。您只需再次应用geojson层。因为一旦你重新初始化地图,它几乎是一块空白板。op use mapbox GLOP use mapbox GL