2014-01-22 4 views
-1

Я пытаюсь сделать так, чтобы маркер i был скрыт до щелчка карты.Отбрасывание маркера на событие, на картах google

Если я удаляю слушателя, маркер там, где он должен быть, и все работает, когда я добавляю его, маркер постоянно уходит.

Я просмотрел как google api, так и несколько веб-сайтов (в том числе и этот), мой комнатный даже посмотрел на него, я просто не могу заставить его работать.

Мое понимание состоит в том, что «щелчок» в этом случае является специфическим для Google, поскольку браузеры обрабатывают такие события несколько иначе, так что, возможно, слушателем является проблема.

Любая помощь очень ценится.

var myCenter=new google.maps.LatLng(55.680313, 12.548468); 

function initialize() 
{ 
var mapProp = { 

    center:myCenter, 
    zoom:15, 
    mapTypeId:google.maps.MapTypeId.ROADMAP 
    }; 

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); 

google.maps.event.addListener(map, 'rightclick', function(event) { 

    var marker=new google.maps.Marker({ 

      position:myCenter, 
      animation:google.maps.Animation.DROP 

      }); 
}); 

marker.setMap(map); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

ответ

0

Почему бы не связать событие с карточкой контейнера?

document.getElementById("googleMap").onmousedown = function(e) { 
    if ((e.which && e.which == 3) || (e.button && e.button == 2)) { 
     var marker=new google.maps.Marker({ 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
     }); 
     document.getElementById("googleMap").onmousedown = undefined; 
    } 
} 

Мы устанавливаем onclick как undefined отключить создание маркеров после первого щелчка.

UPD: Извините. Заметили, что вы хотите связать правой кнопкой мыши. Обновленный код.

+0

я закончил с использованием geocodezips решение, потому что это только мне требуется изменить одну строку, но я попробовал это только потому, что, и она работала хорошо тоже. спасибо – user2945025

1

Я получаю сообщение об ошибке: яваскрипта

Uncaught ReferenceError: marker is not defined 

на этой линии:

marker.setMap(map); 

Изменение:

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 

      position:myCenter, 
      animation:google.maps.Animation.DROP 

      }); 
}); 

marker.setMap(map); 

To:

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
      }); 
    marker.setMap(map); 
}); 

Или:

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 
      map: map, 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
      }); 
}); 

working example

+0

Не могу поверить, что я так долго пропустил это! теперь отлично! tyvm – user2945025

+0

Если это ответили на ваш вопрос, пожалуйста [примите это] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) (или, по крайней мере, повысите его ...) – geocodezip

+0

upvoted, поскольку он использует map eventListener, а не DOM eventListener. Мы не должны смешивать карту api и dom api. – allenhwkim

Смежные вопросы