6


ヘッドでマップを作成しようとすると、「Uncaught TypeError: Cannot read property 'LatLng' of undefined」というエラーが表示され続けます:

 <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>
4

4 に答える 4

7

上記の両方の回答を一緒に使用すると、この問題が解決されます。googleオブジェクトがまだ利用できないため、プロパティ LatLng は未定義です。

<script>タグ期間は常に終了します。

googleオブジェクトは、DOM がロードされるまで利用できません。したがって、JavaScript では、Google マップのaddDomListener(). Karaの解決策は正しいですが、関数名がinitであり、addDomListenerが「ロード」を待たなければならないため、あなたの場合はうまくいきません。次のものが必要です。

google.maps.event.addDomListener(window, 'load', init);

これに対するもう 1 つの非常に簡単な解決策は、コールバックをスクリプトに追加することです。

src="https://maps.googleapis.com/maps/api/js?v=3&sensor=true&callback=init

コールバックは、スクリプトがロードされるのを待ってから、init関数をトリガーしてマップを初期化および描画します。

ここの CodePen にソリューションを配置しますhttp://codepen.io/redbirdisu/pen/BHivq

于 2013-07-24T14:27:03.150 に答える
5

<script>問題は、jquery.js のインクルードの終了タグが欠落していることです。

 <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>タグは で閉じる必要があり</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>

詳細については、次を参照してください:自動終了スクリプト タグが機能しないのはなぜですか?

于 2012-12-06T15:00:29.607 に答える
0

init関数はいつ実行しますか?google.jsが読み込まれる前にinit関数が実行されると、このエラーが発生する可能性があります。

このようにinit関数を呼び出してみてください。

function init(){
      //...
}
google.maps.event.addDomListener(window, 'init', Initialize);
于 2012-12-06T14:40:11.880 に答える
0

私も同じ問題を抱えていました。すべての構文は正しかったです。スクリプト ファイルを HTML ファイルの上下に移動して修正しようとしましたが、いずれも成功しませんでした。

私がしたことは&callback=init、 URL から を削除し、 内でそのメソッドを呼び出すことでした$(document).ready(function () {})。今では完全に機能します。

于 2019-08-13T05:56:02.183 に答える