質問: new google.maps.Map(document.getElementById("map-canvas"), options); がエラーになってしまいます。書き方がおかしいのでしょうか。 ### 補足情報(FW/ツールのバージョンなど)
回答: ``` Uncaught ReferenceError:google is not defined ``` 勝手訳:google が定義されていません。 `google`という変数が使えるようになるのは、`https://maps.googleapis.com/maps/api/js?key=my key&libraries=visualization`が読み込まれた後です。 しかし、コードを拝見すると、``が読み込まれるのは、`google`という変数を使った後です。 つまり、変数を定義する前に使用しているということで、そのため、変数が定義されていない、というエラーが出ます。 解決方法ですが、 1. APIの読み込みを先に書く 2. &callback= を使ってコールバック関数内に書く 3. ロードイベントを拾って実行する などがあると思いますが、1番目を取るなら`async defer`はとりあえず外した方がいいと思います。個人的にはドキュメントに例のある2番がいいのではないかと。