我得到" 无法调用方法' addDomListener'未定义的" google.maps.event.addDomListener(window, 'load', initialize);
代码行出错,其中event
未定义'。我的代码基本上是从developer.google.com上的示例中复制的。
$(function () {
var officeMap = $("#map-canvas");
if (officeMap.length > 0) {
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644), zoom: 8
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
}
});
谷歌地图脚本(带有API密钥)在文档正文末尾(使用Modernizr)之前加载,如下所示:" https://maps.googleapis.com/maps/api/js?key=myApiKey&sensor=false" (我切换" myApiKey"生成密钥ofc:))
错误是否表明Google地图脚本没有先加载?或者我的API密钥无效? 或其他什么?
答案 0 :(得分:0)
谷歌代码示例是正确的,但不会在大多数网站上运行,因为有ajax脚本加载涉及。是的,你是对的,你调用函数时没有加载谷歌脚本。
看一下google脚本的来源,它不是完整的javascript sdk,它只是一个代理/启动文件。我记得上次这些示例代码没有问题时就不是这样了。
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize"></script>
<script>
function initialize() {
var officeMap = $("#map-canvas");
if (officeMap.length > 0) {
var map;
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644), zoom: 8
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}
}
</script>
答案 1 :(得分:0)
尝试使用此代替您的密钥
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false">
我的代码
var myCenter=new google.maps.LatLng(-34.397, 150.644);
function initialize()
{
var mapProp = {
center:myCenter,
zoom:8,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById('maparea'),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
title:'Hi'
});
marker.setMap(map);
var infowindow = new google.maps.InfoWindow({
content:'',
boxStyle: {
maxHeight:200
}
});
infowindow.open(map,marker);
}
google.maps.event.addDomListener(window, 'load', initialize);