1
我想讓用戶放下最多10個標記並將它們移除onClick。當用戶添加標記或拖拽時,我還會用地圖上標記的座標更新「div」。除了當用戶刪除一個標記時,我有一切工作,當我循環通過標記時,它似乎仍然在地圖上。任何想法我做錯了什麼?完全破壞gmap3上的標記
的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;
};
}
}
}
});
});
太謝謝你了!我一直在查看「清除」功能,但注意到無法清除沒有標識,標記或名稱的特定標記。我正在爲每個標記製作一個dynmaic id的部分而苦苦掙扎。先生,先生。動作setMap(null)是清除標記的一種骯髒方式,因爲它知道它只是銷燬覆蓋。你能給我一些很好的參考資料來學習gmap3的更多文檔嗎? – ryan
我的主要參考是[gmap3文檔](http://gmap3.net/en/catalog/)。與其他任何東西一樣,我也是谷歌的具體問題,並經常返回到文檔或StackOverflow中。你的問題其實很棘手。我發現文檔中有很多例子,但在解釋一般原則方面相對較差。在點擊解決方案之前,它導致我下了幾個盲人小巷。最後,這是一個整理小提琴中大量亂碼的問題。像許多人一樣,我並不總是知道答案,但喜歡找出解決方案。 –