我正在开发一个有映射的网站,我正在使用传单。现在我将隐藏/显示我做的标记。
下面是我的代码,找到我想要的图像并将其用作标记
var Icon1 = L.icon({
iconUrl: 'legends/fire.GIF',
iconSize: [170, 120], // size of the icon
iconAnchor: [100, 120], // point of the icon which will correspond to marker's location
popupAnchor: [-7, -80] // point from which the popup should open relative to the iconAnchor
下面的另一个是将标记放在地图上时的代码。
function mark()
{
if (select1.value === "Fire"){
var note = document.getElementById('note');
var datepick = document.getElementById('demo1');
var timepick = document.getElementById('timepick');
map.on('click', function(e){
var marker = new L.Marker(e.latlng,{icon: Icon1});
marker.bindPopup("</a><br><strong>FIRE</strong></br><strong>Date:</strong>"+datepick.value+"</br><strong>Time:</strong>"+timepick.value+"</br><strong>Address:</strong>"+note.value+"<strong><br><strong>Suspect Sketch</strong><br><a href=legends/suspect.jpg rel=lightbox><img src = legends/suspect.jpg height=100 width = 100/>").addTo(map);
marker.on('dragend');
});
这是隐藏标记的代码。
script type="text/javascript">
function closure(marker){
var checkbox = document.getElementById("chbx")
$(chbx).click(function(){
if(map.hasLayer(marker)){
window.alert("I want to hide the marker");
}
window.alert("I want to show the marker");
})
}
</script>
这正是我想要的。 1.在地图上添加标记 2.隐藏/显示地图中的标记 3.在运行期间或尝试时发生这种情况。
我尝试了一切,但仍然没有任何反应。 在复选框中调用我的隐藏/显示功能的正确方法是什么?
答案 0 :(得分:0)
.addTo(map)
应该有效。
但是,您可以使用addLayer
和removeLayer
添加/删除标记:
var marker = new L.Marker(e.latlng,{icon: Icon1});
marker.bindPopup('<div>Hello World</div>');
//add the marker to the map
map.addLayer(marker);
//remove the marker from the map
map.removeLayer(marker);
我假设您已创建map
答案 1 :(得分:0)
这是一种方法: 定义一个以标记为参数的函数,并使用jQuery创建一个函数来切换图层的可见性:
function closure(marker){
$('#yourcheckbox id').click(function(){
if(map.hasLayer(marker)){
map.removeLayer(marker)
}
else {map.addLayer(marker)}
})
}
在地图的click事件中,添加闭包函数:
map.on('click', function(e){
marker = new L.Marker(e.latlng).addTo(map);
closure (marker)
})