Javascript 谷歌地图未捕获类型错误:无法读取属性';车床和x27;未定义的

Javascript 谷歌地图未捕获类型错误:无法读取属性';车床和x27;未定义的,javascript,api,google-maps,Javascript,Api,Google Maps,我一直收到这样的错误“UncaughtTypeError:无法读取未定义的属性'Latling'” 尝试创建地图时 在头部: <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.

我一直收到这样的错误“UncaughtTypeError:无法读取未定义的属性'Latling'” 尝试创建地图时
在头部:

 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"/>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true"></script>

function init(){


            var latlng = new google.maps.LatLng(-43.552965, 172.47315);
            var myOptions = {
                zoom: 10,
               center: latlng,
               mapTypeId: google.maps.MapTypeId.ROADMAP

            };
           map = new google.maps.Map(document.getElementById("map"), myOptions);


        }
    <body>
        <div id="map" style="width:600px;height: 600px;">
        </div>
        <ul class="navigation">
        </ul>
    </body>


什么时候运行init函数? 如果init函数在加载google.js之前运行,则可能会出现此错误

尝试像这样调用init函数

function init(){
      //...
}
google.maps.event.addDomListener(window, 'init', Initialize);

看起来问题在于,jquery.js的include缺少了
的结束标记:

 <script 
   type="text/javascript"
   src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"/>
 <script 
   type="text/javascript" 
   src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true">
 </script>

标签需要用
关闭,它应该是:

 <script 
   type="text/javascript" 
   src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js">     
 </script>
 <script 
   type="text/javascript" 
   src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true">
 </script>


有关更多信息,请参阅:

如果将上述两个答案结合使用,将解决此问题。属性LatLng未定义,因为
google
对象尚不可用

您总是关闭
标记周期

google
对象在加载DOM之前不可用。因此,在javascript中,您必须使用google地图的
addDomListener()
。Kara的解决方案是正确的,但它在您的情况下不起作用,因为函数名为init,addDomListener必须等待“加载”。您需要:

google.maps.event.addDomListener(window, 'load', init);
另一个非常简单的解决方案是将回调添加到脚本中

src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true&callback=init
回调将等待脚本加载,然后触发
init
函数初始化并绘制地图


我在这里把解决方案放在CodePen上

我也有同样的问题,所有语法都是正确的。试图通过将脚本文件向上/向下移动到HTML文件来修复,但均未成功

我所做的是,从URL中删除
&callback=init
,并在
$(document).ready(function(){})
中调用该方法。现在它工作得很好