gpt4 book ai didi

javascript - Leaflet .addLayer() 功能失败,在控制台工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:37 25 4
gpt4 key购买 nike

我认为这意味着我缺少有关 javascript 中嵌套函数工作的一些基本知识,但我无法在传单 map 中添加或删除图层 using a click function .具体来说,我有一个传单 map ,其中定义了许多矢量图层。这些层之一被添加到 map on page load ,然后后续层应该在层选择器中的单击事件上加载。

这是处理点击的函数,然后更新侧边栏图例,更新层选择器中的类,并且应该更新可见层:

// ADD THE LAYER CONTROL FUNCTION
$('.layer').click(function() {
var oldLayer = $('.active').attr('id');
var newLayer = $(this).attr('id');
console.log(oldLayer + ' --> ' + newLayer);
$('#infobits').html('<h2>' + this.text + '</h2><hr>' + legendFormatter(
this.id));
map.removeLayer(oldLayer);
$('.layer').removeClass('active');
$(this).addClass('active');
map.addLayer(newLayer);
});

每次我点击一个新层,我都会得到Uncaught TypeError: undefined is not a function,无论我把函数放在哪里(我什至把它放在 .getJSON() 调用中少量)。令人困惑的是,我在浏览器中转到 JS 控制台并逐字在上述脚本的第 49 行输入函数生成的内容 (map.removeLayer(Percent_TC_bg) ), map 会移除相关图层。

我该怎么做才能让我的 map 无误地添加和删除图层?

最佳答案

我想 TypeError 是在 addLayerremoveLayer 中抛出的。 Map#addLayer#removeLayer接受 ILayer 对象作为参数,但是 oldLayernewLayer 显然是 String,它直接来自 HTML 元素的 ID 属性.

我想,因此更改 oldLayernewLayer 以欣赏 ILayer 对象将解决问题。

关于javascript - Leaflet .addLayer() 功能失败,在控制台工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25112521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com