API Карт Google google.maps.event не определен - PullRequest
3 голосов
/ 20 декабря 2010

Я пытаюсь использовать API Карт Google, чтобы получить местоположение, предоставленное пользователем.Для этого я устанавливаю маркер, который перемещается на основе событий «щелчка».Код таков:

function initialize_google_map(div_id) {
    var map = new GMap2(document.getElementById(div_id));

    map.setCenter(new GLatLng(45, -105), 2);

    map.setUIToDefault();

    return map;
}

$(document).ready(function() {
    // configure the google maps api
    var map = initialize_google_map("map_canvas");
    var marker = google.maps.Marker({map: map, title:"Location"});
    google.maps.event.addListener(map, "click", function(evt) {
        alert("got click event");
        marker.setPosition(evt.latLng);
    });

    $(document).unload(function() {
    // unload the google map
    GUnload();
    }); 

});

Предупреждение «получен щелчок» никогда не срабатывает, и моя консоль Javascript (Google Chrome) говорит следующее:

Uncaught TypeError: Cannotвызвать метод 'addListener' из неопределенного

API включен следующим образом:

<script src="http://maps.google.com/maps?file=api&v=3&sensor=true" type="text/javascript"></script>

Ответы [ 2 ]

2 голосов
/ 21 декабря 2010

Проблема в том, что вы смешиваете Google Maps версии два объекты с Версия 3 . В вашей функции initialize_google_map вы создаете и возвращаете объект GMap2 (объект версии 2). Затем вы передаете этот объект в google.maps.Marker конструктор объекта (объект версии 3).

Вам просто нужно изменить функцию initialize_google_map, чтобы создать экземпляр объекта google.maps.Map .

0 голосов
/ 07 февраля 2014

Событие генерируется перед функцией и оно не распознается, вы меняете этот код:

$(document).ready(function() {      
     google.maps.event.addListener(map, "click", function(evt) {
            alert("got click event");
            marker.setPosition(evt.latLng);
        });
});

для этого кода:

$(window).load(function(){   
    google.maps.event.addListener(map, "click", function(evt) {
            alert("got click event");
            marker.setPosition(evt.latLng);
        });
});
...