2021 年 10 月 13 日に、Google は google.load
で「Maps」モジュールを提供するサービスを終了します。つまり、2021 年 10 月 13 日以降に「Maps」モジュールを google.load
で使用しようとするとエラー(「モジュール「maps」はサポートされていません」)が発生し、地図は読み込まれません。障害の発生を防ぐため、以下に説明するいずれかの代替手段に切り替えてください。
必要なご対応
まず、google.load
ローダを読み込む <script>
タグを削除してから、google.load
への呼び出しを削除します。Google ローダを別の目的で使用する場合は、ローダの <script>
タグをそのまま残しても問題ありません。
次に、Maps JavaScript API を読み込む新しい方法(次のいずれかのオプション)を実装します。
Google ローダを使用した現行のサンプル
以下は、Google ローダを使用して Maps JavaScript API を読み込んでいる現行のサンプルです(<script>
ブロックが 2 つあります)。
以前の方法
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load("maps", "3.exp", {
"callback": initMap,
"key": "YOUR_KEY",
"libraries": "places,visualization"
});
function initMap() {
// Google Maps JS API is loaded and available
}
</script>
<script>
タグを使用するインライン読み込み(推奨)
この方法を使用すると、ページの読み込みと同時に Maps JavaScript API が読み込まれます。インライン読み込みを実装するには、まず www.google.com/jsapi を読み込む <script>
タグ(「以前の方法」)を次のサンプルに示されている <script>
で置き換えます。
<script async src="https://maps.googleapis.com/maps/api/js?libraries=places,visualization&key=YOUR_API_KEY&v=weekly&callback=initMap">
</script>
次に、不要になった google.load
関数呼び出しを JavaScript コードから削除します。次のサンプルには、空の initMap()
関数があります。この関数は、マップ ライブラリが正常に読み込まれたときに呼び出されます。
<script type='text/javascript'>
function initMap() {
// Google Maps JS API is loaded and available
}
</script>
詳しくは、こちらのドキュメントをご覧ください。
別の JavaScript ファイルからの動的読み込み
動的読み込みを行うと、Maps JavaScript API を読み込むタイミングを制御できます。たとえば、ユーザーがボタンのクリックなどのアクションを実行するまで、Maps JavaScript API を読み込むのを待つことができます。動的読み込みを実装するには、以下のサンプルのように、まず www.google.com/jsapi を読み込む <script>
タグ(「以前の方法」)をコードに置き換えて、<script>
タグをプログラマティックに追加します。
var script = document.createElement('script');
script.src =
'https://maps.googleapis.com/maps/api/js?libraries=places,visualization&key=YOUR_API_KEY&v=weekly&callback=initMap';
script.async=true;
次に、以下のように、コールバック関数を window オブジェクトに追加します。
window.initMap = function() {
// Google Maps JS API is loaded and available
};
最後に、以下のようにページのヘッダーに <script>
タグを追加します。
document.head.appendChild(script);
詳しくは、こちらのドキュメントをご覧ください。