Saya mencoba membuat selebaran mengubah peta dasar tergantung pada tingkat zoom. Apa yang saya coba: (Saya baru dalam pengkodean) Saya menerima pernyataan kesalahan:

SyntaxError: missing ) setelah daftar argumen

Saya memang memeriksa sintaks beberapa kali tetapi tidak dapat menemukan kesalahannya.

Saya juga bertanya-tanya apakah ada cara yang lebih elegan untuk menulisnya, daripada pernyataan if-else ganda itu.

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);
        }
    }
}
0
milan 5 Maret 2020, 22:00

1 menjawab

Jawaban Terbaik

Kesalahannya adalah karena Anda lupa tanda kutip di:

console.log(no need to change basemap);

Perbaiki menjadi:

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

Berikut saran tentang bagaimana kode Anda bisa terlihat lebih bersih:

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");
}
0
jrswgtr 5 Maret 2020, 19:52