移行の概要

欧州経済領域(EEA)のデベロッパー

このガイドでは、以前の Places Service と新しい Place クラスの主な違いについて説明します。Place クラスにアップグレードすると、パフォーマンスの向上や新しい料金モデルなど、大きなメリットが得られます。Places を最大限に活用し、アプリを最新の状態に保つため、このガイドで説明する変更についてご確認ください。

移行に関する請求のベスト プラクティス

このガイダンスは、API の使用量が 2 番目の料金に移行するほど多い場合に適用されます。API の新しいバージョンに移行すると、別の SKU の料金も請求されます。移行月の費用増加を回避するには、できるだけ月初に本番環境で新しい API に切り替えることをおすすめします。これにより、移行月に最も費用対効果の高い月額料金階層に到達できます。料金階層については、料金ページと料金に関するよくある質問をご覧ください。

Places API を有効にする

プレイスクラスは Places API サービスに依存しています。新しい Place クラスの機能を使用するには、まず Google Cloud プロジェクトで Places API(新版)を有効にする必要があります。詳細については、スタートガイドをご覧ください。

全般的な変更点

次の表に、PlacesService と Place の主な違いをまとめます。

PlacesService(以前の方法) Place(新規)
メソッドでは、結果オブジェクトと google.maps.places.PlacesServiceStatus レスポンスを処理するためにコールバックを使用する必要があります。 Promise を使用し、非同期で動作します。
メソッドには PlacesServiceStatus チェックが必要です。 ステータス チェックは不要。標準のエラー処理を使用できます。
Place データ フィールドは、スネークケースを使用してフォーマットされます。 プレイスデータ フィールドは、キャメルケースを使用してフォーマットされます。
プレイス タイプとプレイス データ フィールドの固定セットに限定されます。 定期的に更新される場所の種類と場所のデータ フィールドの選択肢が拡大されています。

API 固有の変更

プレイスクラスは、プレイス ライブラリを活用できる API で、Promise のような現代的な運用パターンにも対応しています。Place クラスは、以前の Places Service と同じプレイスデータ フィールドとプレイスタイプを公開し、プレイスデータ フィールドとプレイスタイプの新しい値も多数含んでいます。

次の表は、プレイス サービスの機能がプレイスクラスの機能にどのようにマッピングされるかを示しています。

プレイス サービス(従来版) プレイスクラス(新規)
プレイスデータ フィールド プレイスクラスのデータ フィールド
場所のタイプ 場所タイプ
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
Autocomplete クラス PlaceAutocompleteElement クラス
SearchBox クラス ---

プレイス ライブラリを読み込む

アプリが 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 の最新バージョンを使用するようにアプリを移行する際に役立つ、次のガイドを紹介します。