このガイドでは、従来の Places Service と新しい Place クラスの主な違いについて説明します。Place クラスにアップグレードすると、パフォーマンスの向上や新しい料金モデルなど、大きなメリットがあります。Places を最大限に活用し、アプリを最新の状態に保つために、このガイドで詳しく説明されている変更内容をよく理解してください。
移行に関する請求のベスト プラクティス
このガイダンスは、API の使用量が 2 番目の料金に移行するほど多い場合に適用されます。新しいバージョンの API に移行すると、別の SKU で課金されます。移行月の費用増加を回避するには、本番環境で新しい API への切り替えをできるだけ月初に行うことをおすすめします。これにより、移行月に最も費用対効果の高い月額料金階層に到達できます。料金階層については、料金ページと料金に関するよくある質問をご覧ください。
Places API を有効にする
Place クラスは Places API サービスに依存しています。新しい Place クラスの機能を使用するには、まず Google Cloud プロジェクトで Places API(新版)を有効にする必要があります。詳細については、スタートガイドをご覧ください。
全般的な変更点
次の表に、PlacesService と Place の主な違いを示します。
PlacesService(レガシー) |
Place(新規) |
|---|---|
メソッドでは、結果オブジェクトと google.maps.places.PlacesServiceStatus レスポンスを処理するためにコールバックを使用する必要があります。 |
Promise を使用し、非同期で動作します。 |
メソッドには PlacesServiceStatus チェックが必要です。 |
ステータス チェックは不要。標準のエラー処理を使用可能。 |
| プレイスデータ フィールドはスネークケースでフォーマットされています。 | Place データ フィールドはキャメルケースでフォーマットされています。 |
| 場所のタイプと場所のデータ フィールドの固定セットに限定されます。 | 定期的に更新される場所の種類と場所のデータ フィールドの選択肢がさらに豊富になりました。 |
API 固有の変更
プレイスクラスは、プレイス ライブラリを活用できる API で、Promise のような現代的な運用パターンにも対応しています。Place クラスは、以前の Places Service と同じプレイスデータ フィールドとプレイスタイプを公開し、プレイスデータ フィールドとプレイスタイプの多くの新しい値を含んでいます。
次の表は、Places Service の機能が Place クラスの機能にどのようにマッピングされるかを示しています。
プレイス ライブラリを読み込む
アプリが Places ライブラリを読み込む方法は、使用しているブートストラップ ローダによって異なります。アプリで動的ライブラリ インポートを使用している場合は、await 演算子を使って importLibrary() を呼び出すことで、実行時に必要なライブラリを読み込むことができます。コードは以下のようになります。
const { Place } = await google.maps.importLibrary("places");
アプリでダイレクト スクリプト読み込みタグを使用している場合は、ローダ スクリプトで places ライブラリをリクエストします。
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>詳しくは、Maps JavaScript API の読み込みについての記事をご覧ください。
このセクションでは、Places API の最新バージョンを使用するようにアプリを移行する際に役立つ、次のガイドを紹介します。