是否自动在缩放级别切换底图?

问题描述 投票:0回答:1

我正在尝试根据缩放级别更改传单的底图。我正在尝试:(我是编码新手)我收到错误提示:

SyntaxError:缺少)参数列表后

我几次检查语法,但是找不到错误。

我还想知道是否有一种更优雅的编写方式,而不是双重if-else语句。

map.addEventListener("zoomend", changeBasemap);

function changeBasemap() {
    var zoomLevel = map.getZoom();
    if (zoomLevel < 5) {
        if (map.hasLayer(osm)) {
            map.removeLayer(osm);
            stamen_Watercolor.addTo(map);
        } else {
            console.log(no need to change basemap)
        }
    } else { 
        if (map.hasLayer(stamen_Watercolor)) {
            map.removeLayer(stamen_Watercolor);
            osm.addTo(map);
        } else {
            console.log(no need to change basemap);
        }
    }
}
javascript leaflet dom-events
1个回答
0
投票

错误是因为您忘记了引号:

console.log(no need to change basemap);

更正为:

console.log("no need to change basemap");

这是关于您的代码看起来更干净的建议:

function changeBasemap() 
{
    if ( map.getZoom() < 5 && map.hasLayer(osm) ) {
        map.removeLayer(osm);
        stamen_Watercolor.addTo(map);
        return;
    }

    if ( map.getZoom() > 4 && map.hasLayer(stamen_Watercolor) ) {
        map.removeLayer(stamen_Watercolor);
        osm.addTo(map);
        return;
    }

    console.log("no need to change basemap");
}
© www.soinside.com 2019 - 2024. All rights reserved.