gpt4 book ai didi

javascript - 传单自定义图层控件

转载 作者:行者123 更新时间:2023-12-03 01:44:51 25 4
gpt4 key购买 nike

我正在尝试用自定义控件替换默认的传单图层控件。

我关注了另一篇关于创建自定义图层控件的帖子。

我能够传递图层名称,并且我已使用 console.log 检查了这一点。

但是,取消选中该复选框不会删除该图层。

  var firstLayer = omnivore.kml( 'localtions.kml' )
.on( 'ready', function() {
map.fitBounds( firstLayer.getBounds() );

firstLayer.eachLayer( function( layer ) {

if ( layer instanceof L.Marker ) {
layer.setIcon( layerIcon );
}


layer.on( 'click', function( e ) {
document.getElementById( "location_img" ).innerHTML = '<img src="img/large/logo.png" height="60"><br>';
document.getElementById( "location_name" ).innerHTML = layer.feature.properties.name;
$( "#feature_info" ).stop();
$( "#feature_info" ).fadeIn( "fast" );

console.log( layer.feature.properties.name );
$( "#feature_info" ).fadeOut( 5000 );

} );
} );
} )
.addTo( map );

<div id="layercontrol">
<label><input type="checkbox" data-layer="firstLayer">First Layer</label>
</div>

<script>
$('div#layercontrol input[type="checkbox"]').on('change', function() {
var checkbox = $(this);
var layer = checkbox.data().layer;

console.log(layer);

// toggle the layer
$('#checkbox').change(function() {
if ($(this).is(':checked')) {
map.addLayer(layer);
} else {
map.removeLayer(layer);
}

})
});
</script>

最佳答案

您希望复选框上有 2 个嵌套的 change 函数 - 可能不是您想要的。试试这个....

<div id="layercontrol">
<label><input type="checkbox" data-layer="firstLayer">First Layer</label>
</div>

<script>
$('div#layercontrol input[type="checkbox"]').on('change', function() {
var checkbox = $(this);
var layer = checkbox.data().layer;

console.log(layer);

// toggle the layer

if ($(this).is(':checked')) {
map.addLayer(layer);
} else {
map.removeLayer(layer);
}


});
</script>

关于javascript - 传单自定义图层控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50682634/

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