谷歌地图 API google.maps.event 未定义

Dor*_*orn 5 javascript google-maps dom-events

我正在尝试使用 Google Maps API 来获取用户提供的位置。为此,我设置了一个基于“点击”事件移动的标记。代码如下:

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();
    }); 

});
Run Code Online (Sandbox Code Playgroud)

“得到点击事件”警报永远不会触发,我的 Javascript 控制台(谷歌浏览器)说:

未捕获的类型错误:无法调用未定义的方法“addListener”

API 是这样包含的:

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

Red*_*ing 2

这里的问题是您将Google 地图版本 2对象与版本 3混合在一起。在您的initialize_google_map 函数中,您将创建并返回一个GMap2对象(版本2 对象)。然后,您将此对象传递给google.maps.Marker对象构造函数(版本 3 对象)。

您只需要修改您的initialize_google_map 函数即可实例化google.maps.Map对象。