Код, который я дал вам ранее, прослушал первые два клика и добавил маркер для каждого. Проблема в том, что когда вы перетаскиваете первый маркер, он снова вызывает событие «click» - и, таким образом, добавляет еще один маркер в том же месте.
К счастью, событие click позволяет узнать, был ли выбран оверлей. Поэтому выполняйте только тот код, который добавляет новый маркер, если наложение равно нулю. Обратите внимание, что оверлей не является логическим значением.
var listener = GEvent.addListener(map, "click", function(overlay, latlng) {
if (overlay == null) {
// code to add new marker
}
});