如何使用 marker.setMap(null) 从 google 地图 API - JavaScript 中删除标记
How to remove markers using marker.setMap(null) from google maps API - JavaScript
想法是使用 google 地图 API 制作动态标记。
我想在新标记出现之前先删除创建的标记。我不想做任何 Arry 来管理标记。因为我只是希望将它们移除而不将它们放入数组,然后从那里删除它。
我在循环中调用 deleteMarker
函数来执行此操作。
我使用了一个全局变量但是
我收到此错误:
TypeError: Mark is undefined[Learn More]
代码:
var map;
var Mark;
//setInterval(function(){ alert("Hello"); }, 3000);
setInterval(ajaxCall, 9000); //300000 MS == 5 minutes
function ajaxCall() {
$.ajax({
url: '/maps/my_ajax_request/',
datatype: 'json',
type: 'GET',
success: function (data) {
for(var prop in data) {
var item = data[prop];
console.log(item.latitude,item.longitude, item.icon);
if (item.icon === "online") {
selected_status = online;
} else {
selected_status = offline;
}
deleteMarker();
this.Mark = new google.maps.Marker({
position: {lat: (parseFloat(item.latitude)), lng: (parseFloat(item.longitude))},
map: map,
icon: selected_status
});
}
},
failure: function(data1) {
alert("Got an error dude");
}
});
}
function deleteMarker() {
Mark.setMap(null);
Mark=null;
}
var map;
var Mark;
var online = 'https://img.icons8.com/ultraviolet/48/000000/marker.png';
var offline = 'https://img.icons8.com/color/48/000000/marker.png';
setInterval(ajaxCall, 9000); // 300000ms == 5 minutes
function ajaxCall() {
$.ajax({
url: '/maps/my_ajax_request/',
datatype: 'json',
type: 'GET',
success: function (data) {
for(var prop in data) {
var item = data[prop];
console.log(item.latitude,item.longitude, item.icon);
if (item.icon === "online") {
selected_status = online;
} else {
selected_status = offline;
}
deleteMarker();
Mark = new google.maps.Marker({ // no need of use `this` keyword when use as variable
position: {lat: (parseFloat(item.latitude)), lng: (parseFloat(item.longitude))},
map: map,
icon: selected_status
});
}
},
failure: function(data1) {
alert("Got an error dude");
}
});
}
function deleteMarker() {
if (Mark) {
Mark.setMap(null);
Mark = null;
}
}
想法是使用 google 地图 API 制作动态标记。 我想在新标记出现之前先删除创建的标记。我不想做任何 Arry 来管理标记。因为我只是希望将它们移除而不将它们放入数组,然后从那里删除它。
我在循环中调用 deleteMarker
函数来执行此操作。
我使用了一个全局变量但是 我收到此错误:
TypeError: Mark is undefined[Learn More]
代码:
var map;
var Mark;
//setInterval(function(){ alert("Hello"); }, 3000);
setInterval(ajaxCall, 9000); //300000 MS == 5 minutes
function ajaxCall() {
$.ajax({
url: '/maps/my_ajax_request/',
datatype: 'json',
type: 'GET',
success: function (data) {
for(var prop in data) {
var item = data[prop];
console.log(item.latitude,item.longitude, item.icon);
if (item.icon === "online") {
selected_status = online;
} else {
selected_status = offline;
}
deleteMarker();
this.Mark = new google.maps.Marker({
position: {lat: (parseFloat(item.latitude)), lng: (parseFloat(item.longitude))},
map: map,
icon: selected_status
});
}
},
failure: function(data1) {
alert("Got an error dude");
}
});
}
function deleteMarker() {
Mark.setMap(null);
Mark=null;
}
var map;
var Mark;
var online = 'https://img.icons8.com/ultraviolet/48/000000/marker.png';
var offline = 'https://img.icons8.com/color/48/000000/marker.png';
setInterval(ajaxCall, 9000); // 300000ms == 5 minutes
function ajaxCall() {
$.ajax({
url: '/maps/my_ajax_request/',
datatype: 'json',
type: 'GET',
success: function (data) {
for(var prop in data) {
var item = data[prop];
console.log(item.latitude,item.longitude, item.icon);
if (item.icon === "online") {
selected_status = online;
} else {
selected_status = offline;
}
deleteMarker();
Mark = new google.maps.Marker({ // no need of use `this` keyword when use as variable
position: {lat: (parseFloat(item.latitude)), lng: (parseFloat(item.longitude))},
map: map,
icon: selected_status
});
}
},
failure: function(data1) {
alert("Got an error dude");
}
});
}
function deleteMarker() {
if (Mark) {
Mark.setMap(null);
Mark = null;
}
}