使用ArcGIS JS API 4修改BasemapToggle切换底图的正确方法
修改ArcGIS JS API 4中BasemapToggle的切换底图方法
BasemapToggle控件的核心逻辑是维护**当前激活底图(activeBasemap)和切换目标底图(nextBasemap)**两个属性,点击控件时会在两者间切换。你之前的代码只修改了当前激活底图,并没有替换掉原来的切换目标,所以达不到替换第二个底图的效果。
正确的处理方式分两种场景:
场景1:当前显示的是初始底图(比如你的map1)
直接修改nextBasemap属性为新的map3即可:
// 替换切换目标底图 basemapToggle.nextBasemap = map3;
此时控件的两个切换底图就变成了初始底图和map3。
场景2:当前显示的是原来的map2
需要先将当前底图切回初始底图,再修改切换目标:
// 切回初始底图 basemapToggle.activeBasemap = map1; // 设置新的切换目标 basemapToggle.nextBasemap = map3;
或者也可以先修改nextBasemap再切换,逻辑是一样的,最终确保两个属性对应你需要的两个底图。
验证方法:修改完成后点击BasemapToggle控件,会在初始底图和map3之间切换,达到你要的仅保留两个底图且替换第二个的效果。
内容的提问来源于stack exchange,提问作者Robert Smith
相关产品推荐
相关产品推荐

