Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除传单上的当前标记并再次添加新标记?_Javascript_Leaflet - Fatal编程技术网

Javascript 如何删除传单上的当前标记并再次添加新标记?

Javascript 如何删除传单上的当前标记并再次添加新标记?,javascript,leaflet,Javascript,Leaflet,我的代码有问题。我正在地图上显示标记,但它不会更改标记位置,而是在地图上添加新标记 我有我的问题的打印屏幕 如何删除上一个标记 这是我的密码: var latB = 0; var lonB = 0; var mark = 0; var marker = null; function showOnMap(a){ convert_location(a); marker = L.marker([latB, lonB]).bindPopup(a); map.removeLaye

我的代码有问题。我正在地图上显示标记,但它不会更改标记位置,而是在地图上添加新标记

我有我的问题的打印屏幕

如何删除上一个标记

这是我的密码:

var latB = 0;
var lonB = 0;
var mark = 0;
var marker = null;
function showOnMap(a){
    convert_location(a);
    marker = L.marker([latB, lonB]).bindPopup(a);
    map.removeLayer(marker)
    map.addLayer(marker);
}

function convert_location(a){
    var toData = (function (){
            var toData = null;
                $.ajax({
                    'async': false,
                    'global': false,
                    'url': 'http://nominatim.openstreetmap.org/search?format=json&limit=5&q='+a,
                    'dataType': 'json',
                    'success': function(data){
                        toData = data;
                    }
                });
            return toData;
    })();

    $.each(toData, function(key, val){
        latB = val.lat;
        lonB = val.lon;
    });

}

在将引用设置为新标记后,将删除标记,因此基本上是删除不存在的新标记,然后将其添加到地图中。 在重新分配标记之前,应将其从地图中删除

function showOnMap(a){
  convert_location(a);
  if (marker != null) map.removeLayer(marker);
  marker = L.marker([latB, lonB]).bindPopup(a);
  map.addLayer(marker);
}

在将引用设置为新标记后,将删除标记,因此基本上是删除不存在的新标记,然后将其添加到地图中。 在重新分配标记之前,应将其从地图中删除

function showOnMap(a){
  convert_location(a);
  if (marker != null) map.removeLayer(marker);
  marker = L.marker([latB, lonB]).bindPopup(a);
  map.addLayer(marker);
}

欢迎来到SO!如果您可以在上重现您的问题,您将使人们更容易理解,并使他们能够直接向您展示如何使代码工作。欢迎使用SO!如果您可以在上重现您的问题,您将使人们更容易理解,并使他们能够直接向您展示如何使代码工作。