Я пытаюсь дать пользователю отбросить до 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 для каждого маркера. Шляпы к тебе сэр. Действие setMap (null) является грязным способом очистки маркера, зная, что он просто разрушает оверлей. Не могли бы вы дать мне хорошие ссылки, чтобы узнать больше документации по gmap3? – ryan
Моя основная ссылка - [gmap3 Documentation] (http://gmap3.net/en/catalog/). Как и в случае с чем-либо еще, я также решаю проблемы с Google и часто возвращаюсь в Документацию или в StackOverflow. Ваш вопрос был довольно сложным. Я обнаружил, что документация хорошо сочетается с примерами, но относительно бедна, объясняя общие принципы. Это привело меня к нескольким тупикам, прежде чем ударить по решению. Наконец, речь шла о том, чтобы убрать много лоскутного кода в скрипке. Как и многие люди здесь, на SO, я не всегда знаю ответы, но получаю удовольствие от разработки решений. –