質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

1回答

2010閲覧

google maps API を使ったヒートマップ作成

motangne

総合スコア5

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

1クリップ

投稿2020/01/23 02:37

google mapを利用したヒートマップ作成

現在、Google mapを使ってヒートマップを作成しようと
Java scriptを動かしているのですが以下のエラーメッセージが
分からず質問しました。

発生している問題・エラーメッセージ

Uncaught ReferenceError:google is not defined at 〇〇.html:17

該当のソースコード

Javascript

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>heat map</title> 6 </head> 7<body> 8 9<div id="map-canvas"></div> 10 11<script type="text/javascript"> 12// 表示オプション 13 var options = { 14 zoom: 15, 15__** center: new google.maps.LatLng(43.068664, 141.351034)**__ 16 }; 17 18 var map = new google.maps.Map(document.getElementById("map-canvas"), options); 19 20 var datas = [ 21 {location: new google.maps.LatLng(43.06594, 141.34658),weight:30} 22 ,{location: new google.maps.LatLng(43.05792, 141.35844),weight:30} 23 ,{location: new google.maps.LatLng(43.07072, 141.32076),weight:30} 24 ]; 25 26// ヒートマップレイヤーのオブジェクトを生成 27 var heatmap = new google.maps.visualization.HeatmapLayer({ 28 data: datas 29 ,maxIntensity:50 30 ,radius:50 31 ,opacity:0.8 32 }); 33// Mapのインスタンスを設定 34heatmap.setMap(map); 35 36 </script> 37 38 <script async defer 39 src="https://maps.googleapis.com/maps/api/js?key=my key&libraries=visualization"> 40 </script> 41 42</body> 43</html> 44 45### 試したこと 46 47locationを追加する前にサンプルとして調べつつやってみてるのですがエラーが解決できません。 48 49center: new google.maps.LatLng(43.068664, 141.351034)をコメント化してみると 50var map = new google.maps.Map(document.getElementById("map-canvas"), options); 51がエラーになってしまいます。書き方がおかしいのでしょうか。 52 53### 補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2020/01/23 03:16

何を参考にしましたか?
guest

回答1

0

ベストアンサー

Uncaught ReferenceError:google is not defined

勝手訳:google が定義されていません。


googleという変数が使えるようになるのは、https://maps.googleapis.com/maps/api/js?key=my key&libraries=visualizationが読み込まれた後です。

しかし、コードを拝見すると、<script async defer src="https://maps.googleapis.com/maps/api/js?key=my key&libraries=visualization"> </script>が読み込まれるのは、googleという変数を使った後です。

つまり、変数を定義する前に使用しているということで、そのため、変数が定義されていない、というエラーが出ます。


解決方法ですが、

  1. APIの読み込みを先に書く
  2. &callback= を使ってコールバック関数内に書く
  3. ロードイベントを拾って実行する

などがあると思いますが、1番目を取るならasync deferはとりあえず外した方がいいと思います。個人的にはドキュメントに例のある2番がいいのではないかと。

投稿2020/01/23 04:18

編集2020/01/23 04:28
Lhankor_Mhy

総合スコア36074

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

motangne

2020/01/23 10:52

丁寧な回答ありがとうございます。指摘していただいた通りcallbackを使い修正したところ無事動かせることができました。今回はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問