我的代码出现问题。我在地图上显示标记,但不是更改标记位置,而是在地图上添加新标记。
我有一个问题的打印屏幕。
如何删除上一个标记?
这是我的代码:
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;
});
}
答案 0 :(得分:0)
在设置对新标记的引用后,您正在删除标记,因此基本上您要删除不存在的新标记,然后将其添加到地图中。 在重新分配之前,应该从地图中删除标记。
function showOnMap(a){
convert_location(a);
if (marker != null) map.removeLayer(marker);
marker = L.marker([latB, lonB]).bindPopup(a);
map.addLayer(marker);
}