从gmap3测试示例代码:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false&language=zh" type="text/javascript"></script>
<script type="text/javascript" src="js/gmap3.js"></script>
<style>
.gmap3{
margin: 20px auto;
border: 1px dashed #C0C0C0;
width: 500px;
height: 250px;
}
</style>
<script type="text/javascript">
$(function(){
try{
$('#geoTestDiv').gmap3(
{ action: 'addMarker',
latLng : [46.578498,2.457275],
map:{
center: true,
zoom: 14,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
}
);
}catch(exception){
alert(exception);
}
});
</script>
<body>
<div id="geoTestDiv" class="gmap3"></div>
</body>
</html>
在FF 14.0.1上,它发出警报:
TypeError:google.maps.MapTypeId未定义
在Chrome 16.0.889.0上,显示带有图片的div。
为什么会有这样的差异?
答案 0 :(得分:2)
您可以尝试命名初始化地图的函数,然后将其作为回调添加到加载Google Maps API的链接中。
这样的事情:
<script src="http://maps.google.com/maps/api/js?sensor=false&language=zh&callback=initMainMap" type="text/javascript"></script>
<script type="text/javascript">
function initMainMap(){
//function body
}
</script>
来自此处的原始答案:Google Maps API v3 - TypeError... https://stackoverflow.com/a/8361021/1266136
答案 1 :(得分:0)
可能有点晚了,但对我而言,这有助于添加这一行:
var myLatlng = new google.maps.LatLng(0.0, 0.0);
在致电mapTypeId: google.maps.MapTypeId.TERRAIN
之前
像这样:
var myLatlng = new google.maps.LatLng(0.0, 0.0); // this will somehow initialize google.maps...
$('#geoTestDiv').gmap3(
{ action: 'addMarker',
latLng : [46.578498,2.457275],
map:{
center: true,
zoom: 14,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
}
);