Javascript 删除传单上的特定标记不是一项功能

Javascript 删除传单上的特定标记不是一项功能,javascript,leaflet,openstreetmap,marker,Javascript,Leaflet,Openstreetmap,Marker,我根据传单和OSM制作了一张地图,为每个标记创建了一个弹出窗口,其中包含一个删除相应标记的按钮,但它就是不起作用。我尝试过使用地图、图层和标记属性删除功能和删除标记函数,但它们中的每一个都返回它不是一个函数。谢谢你的帮助 这是我的密码: <script type="text/javascript"> var count = 0; var map, layer, marker = []; function selesai(){ alert(c

我根据传单和OSM制作了一张地图,为每个标记创建了一个弹出窗口,其中包含一个删除相应标记的按钮,但它就是不起作用。我尝试过使用地图、图层和标记属性删除功能和删除标记函数,但它们中的每一个都返回它不是一个函数。谢谢你的帮助

这是我的密码:

<script type="text/javascript">
    var count = 0; 
    var map, layer, marker = [];

    function selesai(){
        alert(count);
        marker[count].removeMarker();
        location.reload();
        $.ajax({
            url: "{{url('mapdata')}}/"+count,
            data: {},
            dataType: 'json',
            type:'get',
            success:function(data) {
                initMap2(data);
            }
        });
    }

    function initMap(data){
        var locations = data;

        map = L.map( 'osmap_page', {
            center: [locations[locations.length-1][2], locations[locations.length-1][3]],
            zoom: 18
        });

        layer = L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
            subdomains: ['a','b','c']
        }).addTo( map );

        for ( var i=0; i < locations.length; i++) {

            if (locations[i][0] == 'panic') {
                var icon = L.icon({iconUrl:"{{asset('assets/splash4.gif')}}", iconAnchor: new L.Point(36,41), popupAnchor: new L.Point(-5, -45) });

                marker[i] = L.marker( [locations[i][2], locations[i][3]], {icon: icon});
                marker[i].bindPopup('<div id="content">'+
        '<h3 style="color:red; text-align:center;">Panic</h3>'+
        '<div id="bodyContent">'+
        '<p> Nama : ' + locations[i][5] + " <br> Email : " + locations[i][6] + " <br> Nomor HP : " + locations[i][7] + " <br><br> Lokasi : " + locations[i][4] + " <br> Waktu : " + locations[i][1]+ '</p>'+
        '</div>'+ '<button type="button" class="btn btn-warning btn-xs" onclick="proses()">Proses</button>'+ '<div class=pull-right><button type="button" class="btn btn-success btn-xs" onclick="selesai()">Selesai</button></div>'+
        '</div>').addTo( map );

                if(i == locations.length - 1){
                    count = i;
                    map.setView(new L.LatLng(locations[i][2], locations[i][3]), 18);
                    marker[i].bindPopup('<div id="content">'+
        '<h3 style="color:red; text-align:center;">Panic</h3>'+
        '<div id="bodyContent">'+
        '<p> Nama : ' + locations[i][5] + " <br> Email : " + locations[i][6] + " <br> Nomor HP : " + locations[i][7] + " <br><br> Lokasi : " + locations[i][4] + " <br> Waktu : " + locations[i][1]+ '</p>'+
        '</div>'+ '<button type="button" class="btn btn-warning btn-xs" onclick="proses()">Proses</button>'+ '<div class=pull-right><button type="button" class="btn btn-success btn-xs" onclick="selesai()">Selesai</button></div>'+
        '</div>').openPopup().addTo( map );
                }

            } else {
                var icon2 = L.icon({iconUrl:"{{asset('assets/opmarkerblue2.png')}}", iconAnchor: new L.Point(0,40), popupAnchor: new L.Point(10, -36)});
                marker[i] = L.marker( [locations[i][2], locations[i][3]], {icon: icon2});

                marker[i].bindPopup('<div id="content">'+
        '<h3 style="color:blue; text-align:center;">Peristiwa</h3>'+
        '<div id="bodyContent">'+
        '<p> Nama : ' + locations[i][5] + " <br> Email : " + locations[i][6] + " <br> Nomor HP : " + locations[i][7] + " <br><br> Lokasi : " + locations[i][4] + " <br> Waktu : " + locations[i][1]+ '</p>'+
        '</div>'+ '<button type="button" class="btn btn-warning btn-xs" onclick="proses()">Proses</button>'+ '<div class=pull-right><button type="button" class="btn btn-success btn-xs" onclick="selesai()">Selesai</button></div>'+
        '</div>').addTo( map );

                if(i == locations.length - 1){
                    count = i;
                    map.setView(new L.LatLng(locations[i][2], locations[i][3]), 18);
                    marker[i].bindPopup('<div id="content">'+
        '<h3 style="color:blue; text-align:center;">Peristiwa</h3>'+
        '<div id="bodyContent">'+
        '<p> Nama : ' + locations[i][5] + " <br> Email : " + locations[i][6] + " <br> Nomor HP : " + locations[i][7] + " <br><br> Lokasi : " + locations[i][4] + " <br> Waktu : " + locations[i][1]+ '</p>'+
        '</div>'+ '<button type="button" class="btn btn-warning btn-xs" onclick="proses()">Proses</button>'+ '<div class=pull-right><button type="button" class="btn btn-success btn-xs" onclick="selesai()">Selesai</button></div>'+
        '</div>').openPopup().addTo( map );
                }
            }
        }
        $("#start").click(function() {
            timer = setInterval(fetch2, 3000); 
        });

        $("#stop").click(function() {
            if(timer){
                clearInterval(timer);
                timer = null
            }
        });
    }

</script>

var计数=0;
变量映射,图层,标记=[];
函数selesai(){
警报(计数);
标记[count]。移除标记();
location.reload();
$.ajax({
url:“{url('mapdata')}}/”+计数,
数据:{},
数据类型:“json”,
类型:'get',
成功:功能(数据){
initMap2(数据);
}
});
}
函数initMap(数据){
var位置=数据;
map=L.map('osmap_page'{
中心:[位置[locations.length-1][2],位置[locations.length-1][3],
缩放:18
});
layer=L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:“©;”,
子域:['a','b','c']
}).addTo(地图);
对于(变量i=0;i电子邮件:“+locations[i][6]+”
诺莫惠普:“+locations[i][7]+”
洛卡斯:“+locations[i][4]+”
瓦克图:“+locations[i][1]+”

”+ “+”散文“+”塞莱赛“+ '')。添加到(地图); 如果(i==locations.length-1){ 计数=i; 地图设置视图(新L.LatLng(位置[i][2],位置[i][3]),18); 标记[i].bindPopup(“”+ “恐慌”+ ''+ “Nama:“+locations[i][5]+”
电子邮件:“+locations[i][6]+”
诺莫惠普:“+locations[i][7]+”
洛卡斯:“+locations[i][4]+”
瓦克图:“+locations[i][1]+”

”+ “+”散文“+”塞莱赛“+ '').openPopup().addTo(映射); } }否则{ var icon2=L.icon({iconUrl:{{asset('assets/opmarkerblue2.png')}}),iconAnchor:newl.Point(0,40),popupAnchor:newl.Point(10,-36)}); marker[i]=L.marker([locations[i][2],locations[i][3],{icon:icon2}); 标记[i].bindPopup(“”+ “佩里斯蒂瓦”+ ''+ “Nama:“+locations[i][5]+”
电子邮件:“+locations[i][6]+”
诺莫惠普:“+locations[i][7]+”
洛卡斯:“+locations[i][4]+”
瓦克图:“+locations[i][1]+”

”+ “+”散文“+”塞莱赛“+ '')。添加到(地图); 如果(i==locations.length-1){ 计数=i; 地图设置视图(新L.LatLng(位置[i][2],位置[i][3]),18); 标记[i].bindPopup(“”+ “佩里斯蒂瓦”+ ''+ “Nama:“+locations[i][5]+”
电子邮件:“+locations[i][6]+”
诺莫惠普:“+locations[i][7]+”
洛卡斯:“+locations[i][4]+”
瓦克图:“+locations[i][1]+”

”+ “+”散文“+”塞莱赛“+ '').openPopup().addTo(映射); } } } $(“#开始”)。单击(函数(){ 定时器=设置间隔(FETCH2000); }); $(“#停止”)。单击(函数(){ 中频(定时器){ 清除间隔(计时器); 计时器=空 } }); }

请记住,问题源于函数selesai,它包含删除标记,但这不是函数错误。点击marker弹出窗口中的Selesai按钮触发Selesai本身。

我已经得到了答案,在修正了各种可能性之后,答案很简单:

map.removeLayer(marker[count]);

我需要将其定义为marker[count],以指定应该删除哪个标记。干杯。

您是否可以创建一个标记?我不确定“marker[count]”是否会为您提供所需的标记。。。解决此问题后,map.removeLayer(marker)应该可以工作。或者只是创建一个小提琴,这样我们可以更容易地调试您的代码