1. ホーム
  2. javascript

[解決済み] Uncaught TypeError: Cannot read property 'firstChild' of null (Google maps failing to load) [duplicate] (Google マップの読み込みに失敗しました)。

2022-02-18 22:03:51

質問

Google Maps APIについて、どなたか知識を貸していただけないでしょうか。同じような質問を読みましたが、まだ答えにたどり着いていません。タイトルにあるように、私のブラウザコンソールに表示されるエラーは次のとおりです。

Uncaught TypeError: Cannot read property 'firstChild' of null

これは、値の受け渡し方法に問題があることを意味していると理解しています。 sources はChromeで指しています。

// --- Global Variable
var map;


// --- View Model.
function AppViewModel() {

  // Initial Map
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 39.305, long: -76.617},
    zoom: 12
  });


// --- Initalize Application.
function initApp() {
  ko.applybindings(new AppViewModel());
}

Google Mapsを読み込もうとするとエラーが発生するようです。何が間違っているのか、どなたかお分かりになる方はいらっしゃいますか?助けてくれてありがとうございます。

参考までにHTMLを掲載します。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Bolton Hill Neighborhood Map</title>
  <link rel="stylesheet" href="static/main.css">
  <meta name="viewport" content"width=device-width, initial-scale=1">
</head>
<body>
 <div class='map'>maps error</div>

  <script src="./js/knockout.js"></script>
  <script src="./js/jquery.min.js"></script>
  <script src="./js/app.js"></script>
  <script async defer src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&callback=initApp" onerror="errorHandler"></script>
</body>
</html>

解決方法は?

私が思うに center: {lat: 39.305, long: -76.617} とのことです。 long は正しくありません。
latlngはこのように定義する必要があります。

var latlng = new google.maps.LatLng(39.305, -76.617);
map = new google.maps.Map(document.getElementById('map'), {
  center: latlng,
  zoom: 12
});

そして

Uncaught TypeError: null のプロパティ 'firstChild' を読み取ることができません。

エラーメッセージは、通常、マップコンテナが存在しない場合に発生します。

map = new google.maps.Map(document.getElementById('id_that_does_notexist'), {