簡體   English   中英

刪除圖層不起作用

[英]Remove layers is not working

我這里有一個代碼,可根據我的php在地圖上顯示標記。

/* Generate the map and center it in philipines on start up */
var map = L.map('map').setView([12.8797, 121.7740], 6);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

/* Mapping Variables */
var markers = new L.layerGroup();

/* On button click put a marker on the phillipine map base on condition */
$("#btn-generate").click(function(){

/* Other variables */
var d1 = $('#startdate').val();
var d2 = $('#enddate').val();
var fspcode = $('#fspcode').find(":selected").text();

$.ajax({  
    type: 'POST',  
    url: '../../php/pages/sfa/qry_map.php', 
    data: {
    'startdate' : d1,
    'enddate'   : d2,
    'fspcode'   : fspcode
    },
    success: function(data) {
        var data = JSON.parse(data);
        data = data.aaData; 
        if (data.length == 0) {
            sfaMsgbox("Unable to Track. No record found.");
        } else {
            /* Get the lat and long */
            for (var i = 0; i < data.length; i++) {
            var lat = data[i].lat;
            var long = data[i].long;
            var code = data[i].code;
            var vdate = data[i].vdate;
            var type = data[i].type;
            var name = data[i].name;
            var address = data[i].address;
            var wholeinfo = "<b>FSP Assigned : </b>" + code + "<br>" +
              "<b>Visit Date : </b>" + vdate + "<br>" +
              "<b>Customer : </b>" + name + "<br>" +
              "<b>Address : </b>" + address + "<br>" +
              "<b>Type : </b>" + type;

            /* Proceed in creating the map */
            var marker = L.marker([lat,long]);
            marker.bindPopup(wholeinfo, {
                showOnMouseOver: true
            });
            markers.addLayer(marker);
        }
    }
}
});

/* Add the markers */
map.addLayer(markers);

});

這就是我刪除它的方式。

$("#removemarker").click(function(){
    /* Remove any existing Markers */
    map.removeLayer(markers);
});

這些代碼有效,但是如果我刪除所有標記,它們確實會刪除,但是如果我生成一個新標記,則會再次顯示舊標記。 我該如何解決?

我的目標是添加和添加標記,無論標記多少然后刪除所有標記。 唯一的問題是舊標記再次顯示。 TYSM

removeLayer函數僅從地圖上刪除圖層(基本上將其隱藏)。 標記仍將保留在layerGroup 如果要從圖層中刪除所有標記,則可能要使用

markers.clearLayers();

代替。 這將從圖層中刪除所有當前標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM