如何从地图上的现有数据中删除标记

时间:2015-10-21 08:41:54

标签: javascript jquery postgresql maps leaflet

我有一个用postgresql制作的餐馆数据集,它们在地图上显示为带有信息的标记。

现在我想用一个按钮从地图中删除一个带有信息的标记,或者显示在标记信息中。

我将不胜感激任何帮助。感谢。

HTML:

<button type="button" class="btn btn-danger" onclick="rest()">Restaurants</button>

var xmlhttp;
var variable;
var be;

var search_group = new L.LayerGroup(); 
var clickArr = new Array();

function rest()
{
  if (window.XMLHttpRequest)
  {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.open("GET","new.php",true);
  xmlhttp.send(); 

  map.addLayer(search_group);

  xmlhttp.onreadystatechange = function restaurant()
  {

    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        variable = jQuery.parseJSON(xmlhttp.responseText);
        for (var i in variable)
        {
            be = L.marker(new L.LatLng(parseFloat(variable[i].lat), parseFloat (variable[i].lon)),options={"id":variable[i].id});
            var container= $('<div />');
            container.html('<b>'+variable[i].name+'</b>'+'<br/>'
        +variable[i].street+'<br/>'
        +variable[i].zipcode+'<br/>'
        +variable[i].city+'<br/>'
        +variable[i].telephone+'<br/>'
        +'<a href=http://'+variable[i].website+'>' 
        +variable[i].website+'</a>');

            be.bindPopup(container[0]);   id="+variable[i].lat+"_"+variable[i].lon+">Remove Marker</a>")
            marker.push(be);    
            be.addTo(map);
        };
    };

1 个答案:

答案 0 :(得分:0)

这应该就像将标记存储在一个数组中一样简单(看起来你的变量为marker,即使它没有声明为数组),其索引与{{1}中的索引相同}数组,以便您可以在“删除标记”按钮/链接中记住此值(例如使用HTML5数据集或jQuery variable)并相应地执行操作。

演示:http://jsfiddle.net/ve2huzxw/2/