【发布时间】:2012-03-01 17:28:55
【问题描述】:
从我使用的谷歌地图中清除标记:
mapContent.gmap('clear', 'markers');
但是,如果我想清除特定标记,而不是全部,比如说他们的 ID,该怎么办?可能吗?
【问题讨论】:
从我使用的谷歌地图中清除标记:
mapContent.gmap('clear', 'markers');
但是,如果我想清除特定标记,而不是全部,比如说他们的 ID,该怎么办?可能吗?
【问题讨论】:
从地图中清除标记的方法是调用 marker 上的 setMap(null)。看起来您正在为谷歌地图使用一些第三方插件(jquery-ui-map 也许?)。如果你使用jquery-ui-map,使用find方法找到你想要的标记,然后调用setMap(null)就可以了。
【讨论】:
marker.setMap(null) 只会清除标记覆盖。它不会破坏标记。因为“清楚”是潜在的。我也想清除标记并销毁我单击的标记。我有一个我愿意分享的工作演示。虽然我使用了 marker.setMap(null) 它只隐藏了标记。我还没有找到彻底摧毁它的方法。
jsFiddle:
jsfiddle.net/ryanverdel/WRyrJ/
代码:
$(document).ready(function () {
var markerCount = 0;
$("#test1").gmap3({
map: {
options: {
center: [-2.2214281090541204, -78.695068359375],
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
scrollwheel: true,
disableDoubleClickZoom: true,
streetViewControl: false,
},
events: {
click: function (map, event) {
if (markerCount < 10) {
$(this).gmap3(
{
marker: {
latLng: event.latLng,
options: {
draggable: true,
animation: google.maps.Animation.DROP,
},
events: {
click: function (marker) {
marker.setMap(map);
marker.setMap(null);
marker = null;
delete marker;
console.log(marker);
markerCount--;
},
dragend: function (marker) {
$("#inputArray").empty();
setTimeout(function () {
var markers = $("#test1").gmap3({
get: {
all: true
}
});
$.each(markers, function (i, marker) {
$("#inputArray").append('<p>{"latitude":' + marker.position.lat() + ', ' + '"longitude":' + marker.position.lng() + '},' + '</p>');
});
}, 400);
}
},
},
});
markerCount++;
$("#inputArray").empty();
setTimeout(function () {
var markers = $("#test1").gmap3({
get: {
all: true
}
});
$.each(markers, function (i, marker) {
$("#inputArray").append('<p>{"latitude":' + marker.position.lat() + ', ' + '"longitude":' + marker.position.lng() + '},' + '</p>');
});
}, 400);
} else {
return false;
};
}
}
}
});
});
【讨论】: