2015-09-21 5 views
21

私はこの問題をウェブ上で検索しましたが、どれも解決方法がわかりません。南アフリカの地図を表示するだけの簡単なスクリプトがあります。Google Maps API:TypeError:aは定義されていません

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
<title>Map Test</title> 
<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<style> 
#map-canvas { 
    height: 300px; 
    width: 980px; 
    margin: 0; 
    padding: 0; 
    margin-top: 10px; 
} 
</style> 
</head> 
<body> 
<div id="map-canvas" class="map_canvas"></div> 
<script type="text/javascript"> 
    function initialize() 
    { 
     var mapOptions = { 
      center: new google.maps.LatLng(-29.09958,26.18434), 
      zoom: 5, 
      mapTypeControlOptions: { 
       position: google.maps.ControlPosition.TOP_LEFT 
      } 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</body> 
</html> 

しかし、私は何度も同じエラーを繰り返しています。私は別のサーバーで試してみました。

enter image description here

私も最後の日には、多くの場合、このエラーを見てきました

+0

Chrome 44〜45を使用してこの問題を再現できませんでした。Firefoxを試したこともあり、エラーはありません。 –

+0

@KimHonoridez、問題はChromeに影響しないようです。 Firefox 41.0.1では間違いが断続的です。 –

答えて

46

を助けてください、実験的なAPIバージョンで問題があるようです。

代わりに、リリースバージョンをロードします(基本的にはあなたが常に生産でリリース・バージョンをロードする必要があります)

<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&v=3"></script> 
+0

ありがとう、私の日を変える!!!! – Siick

+2

私はGoogleが実験的な(すなわち不安定な)バージョンをデフォルトで提供しているのに驚いています。 「明示的にバージョンを指定しないと、デフォルトで実験バージョンが届きます。クライアントIDを指定するGoogle Maps API for Workの顧客は、デフォルトでリリースバージョンを受け取ることになります。 (https://developers.google.com/maps/documentation/javascript/versionsから) –

+0

答えは、最新の「リリース」バージョンのv3 APIをロードします。アプリケーションによっては、特定のバージョンを要求する方が適切かもしれません(例3.21)。詳細については、Googleの「ベストプラクティス」を参照してください。https://developers.google.com/maps/documentation/javascript/versions#best-practices –

1

Googleマップは、スクリプトをロードする際のエラーを介し始め、タッチイベントに。私はAndroidとiOS上のcordovaアプリケーションに使用しています。 enter image description here

これはエラーですが、ロードバージョンを変更しても解決できませんでした。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MYKEY&v=3.21&libraries=geometry,places"></script> 
+0

私は、デバイスがオンラインになっているときにGMaps非同期をロードしていて、そこに間違ったURLがあることを認識しました。ここであなたは行く、私の土曜日は私の中で行って愚かな。 – Daniela

+0

それを解決する上でうまくやって、結果を投稿してくれてありがとう。他人を助けるのに常に良い –

1

Mapという名前のグローバル変数がある場合、バージョン3.30+はこの問題の影響を受けます。

例:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE&v=3&callback=init" async defer></script> 
<script type="text/javascript"> 
    function init() { 
     Map.go(); 
    } 
    var Map = { 
     go: function() { 
      console.log("start engine"); 
     } 
    }; 
</script> 

私たちは、このエラーを得た:

window.Mapの名前を変更

TypeError: a.prototype is undefined

その後、すべてがうまく行きます。

関連する問題