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>
这里的问题是您将Google 地图版本 2对象与版本 3混合在一起。在您的initialize_google_map 函数中,您将创建并返回一个GMap2对象(版本2 对象)。然后,您将此对象传递给google.maps.Marker对象构造函数(版本 3 对象)。
您只需要修改您的initialize_google_map 函数即可实例化google.maps.Map对象。