Javascript &引用;google.maps.MapTypeId未定义“;在FF 14中使用GMAP3时

Javascript &引用;google.maps.MapTypeId未定义“;在FF 14中使用GMAP3时,javascript,firefox,google-chrome,jquery-gmap3,Javascript,Firefox,Google Chrome,Jquery Gmap3,测试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" typ

测试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>

.gmap3{
保证金:20px自动;
边框:1px虚线#C0C0;
宽度:500px;
高度:250px;
}
$(函数(){
试一试{
$('#geoTestDiv').gmap3(
{操作:'addMarker',
latLng:[46.578498,2.457275],
地图:{
中:是的,
缩放:14,
mapTypeId:google.maps.mapTypeId.TERRAIN
}
}
);
}捕获(例外){
警报(例外);
}
});
在FF 14.0.1中,它发出警报:

TypeError:google.maps.MapTypeId未定义

在Chrome16.0.889.0上,会显示带有图像的div


为什么会有这样的差异?

可能有点晚了,但对我来说,这有助于添加这一行:

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

您可以尝试命名初始化映射的函数,然后将其作为回调放入加载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>

函数initMainMap(){
//功能体
}
原文如下: