移行の概要

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

Places API を有効にする

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

全般的な変更点

次の表に、PlacesServicePlace の主な違いを示します。

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

API 固有の変更

プレイスクラスは、プレイス ライブラリを使用する API を提供し、Promise などの最新の使用パターンをサポートしています。Place クラスは、従来の Places Service と同じプレイスデータ フィールドとプレイスタイプを公開し、プレイスデータ フィールドとプレイスタイプに多くの新しい値が含まれています。

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

プレイス サービス(従来版) プレイスクラス(新規)
プレイスデータ フィールド プレイスクラスのデータ フィールド
場所の種類 場所の種類
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 を使用するようにアプリを移行するための次のガイドを紹介します。