移行の概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このガイドでは、以前の Places Service と新しい Place クラスの主な違いについて説明します。Place クラスにアップグレードすると、パフォーマンスの向上や新しい料金モデルなど、大きなメリットがあります。Places を最大限に活用し、アプリを最新の状態に保つには、このガイドで説明する変更について理解しておく必要があります。
移行の請求に関するベスト プラクティス
warning_amber
このガイダンスは、API の使用量が第 2 階層の料金に移行するほど多い場合に適用されます。API の新しいバージョンに移行すると、別の SKU の料金も請求されます。移行月の費用増加を避けるため、できるだけ月の初めに本番環境で新しい API に切り替えることをおすすめします。これにより、移行月の月額料金階層を最も費用対効果の高いものにすることができます。料金階層については、料金ページと料金に関するよくある質問をご覧ください。
Places API を有効にする
プレイスクラスは Places API サービスに依存しています。新しい Place クラスの機能を使用するには、まず Google Cloud プロジェクトで Places API(新版)を有効にする必要があります。詳細については、スタートガイドをご覧ください。
全般的な変更点
次の表に、PlacesService
と 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 を使用するようにアプリを移行する際に役立つ次のガイドを紹介します。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-31 UTC。
[null,null,["最終更新日 2025-08-31 UTC。"],[],[],null,["# Migration overview\n\n\u003cbr /\u003e\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nThis guide highlights key differences between the legacy\nPlaces Service and the new\nPlace class. Upgrading to the\nPlace class offers significant advantages,\nincluding improved performance and a new [pricing model](/maps/documentation/javascript/usage-and-billing#places-js-library).\nTo get the most out of Places and ensure your apps are up-to-date, familiarize\nyourself with the changes detailed in this guide.\n\n\nBilling best practices for migration\n------------------------------------\n\nwarning_amber\n\nThis guidance applies if your API usage is high enough to\nmove into second-tier pricing. When migrating to a newer version of an API,\nyou're also being billed for a different SKU. To avoid increased costs during the month of\nyour transition, we recommend switching to the new APIs in production as close to the\nbeginning of the month as possible. This will ensure that you reach the most cost-effective\nmonthly pricing tiers during the migration month. For information about pricing tiers,\nsee the [pricing page](/maps/billing-and-pricing/pricing)\nand the [pricing FAQ](/maps/billing-and-pricing/faq).\n\n\u003cbr /\u003e\n\nEnable Places API\n-----------------\n\nThe Place class relies on the Places API service.\nTo use the features of the new Place class, you\nmust first enable Places API (New) in your Google Cloud project. For more\ninformation, see [Get started](/maps/documentation/javascript/place-get-started).\n\nGeneral changes\n---------------\n\nThe following table lists some of the main differences between `PlacesService`\nand `Place`:\n\n| [`PlacesService`](/maps/documentation/javascript/reference/places-service) (Legacy) | [`Place`](/maps/documentation/javascript/reference/place) (New) |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Methods require the use of a callback to handle the results object and `google.maps.places.PlacesServiceStatus` response. | Uses Promises, and works asynchronously. |\n| Methods require a `PlacesServiceStatus` check. | No required status check, can use standard error handling. |\n| [Place data fields](/maps/documentation/javascript/place-data-fields) are formatted using snake case. | [Place data fields](/maps/documentation/javascript/place-class-data-fields) are formatted using camel case. |\n| Limited to a fixed set of [place types](/maps/documentation/javascript/supported_types) and [place data fields](/maps/documentation/javascript/place-data-fields). | Provides an expanded selection of regularly updated [place types](/maps/documentation/javascript/place-types) and [place data fields](/maps/documentation/javascript/place-class-data-fields). |\n\nAPI-specific changes\n--------------------\n\nThe Place class provides an API for using the Places library, and supports\nmodern usage patterns such as Promises. The Place class exposes the same place\ndata fields and place types as the legacy Places Service, and includes many new\nvalues for place data fields and place types.\n\nThis table shows how features of the Places Service\nmap to those of the Place class:\n\n| Places Service (Legacy) | Place Class (New) |\n|----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|\n| [Place Data Fields](/maps/documentation/javascript/place-data-fields) | [Place Class Data Fields](/maps/documentation/javascript/place-class-data-fields) |\n| [Place Types](/maps/documentation/javascript/supported_types) | [Place Types](/maps/documentation/javascript/place-types) |\n| [`PlacesService.findPlaceFromQuery()`](/maps/documentation/javascript/reference/places-service#PlacesService.findPlaceFromQuery) | [`Place.searchByText()`](/maps/documentation/javascript/reference/place#Place.searchByText) |\n| [`PlacesService.findPlaceFromPhoneNumber()`](/maps/documentation/javascript/reference/places-service#PlacesService.findPlaceFromPhoneNumber) | [`Place.searchByText()`](/maps/documentation/javascript/reference/place#Place.searchByText) |\n| [`PlacesService.textSearch()`](/maps/documentation/javascript/reference/places-service#PlacesService.textSearch) | [`Place.searchByText()`](/maps/documentation/javascript/reference/place#Place.searchByText) |\n| [`PlacesService.nearbySearch()`](/maps/documentation/javascript/reference/places-service#PlacesService.nearbySearch) | [`Place.searchNearby()`](/maps/documentation/javascript/reference/place#Place.searchNearby) |\n| [`PlacesService.getDetails()`](/maps/documentation/javascript/reference/places-service#PlacesService.getDetails) | [`Place.fetchFields()`](/maps/documentation/javascript/reference/place#Place.fetchFields) |\n| [`Places.AutocompletionRequest`](/maps/documentation/javascript/reference/places-autocomplete-service?db=wfrench#AutocompletionRequest) | [`Places.AutocompleteRequest`](/maps/documentation/javascript/reference/autocomplete-data#AutocompleteRequest) |\n| [`Places.AutocompletePrediction`](/maps/documentation/javascript/reference/places-autocomplete-service#AutocompletePrediction) | [`Places.PlacePrediction`](/maps/documentation/javascript/reference/autocomplete-data#PlacePrediction) |\n| [`Autocomplete`](/maps/documentation/javascript/reference/places-widget#Autocomplete) class | [`PlaceAutocompleteElement`](/maps/documentation/javascript/reference/places-widget#PlaceAutocompleteElement) class |\n| [`SearchBox`](/maps/documentation/javascript/reference/places-widget#SearchBox) class | --- |\n\nLoad the Places library\n-----------------------\n\nHow your app loads the Places library depends on which bootstrap loader is in\nuse. If your app uses [dynamic library import](/maps/documentation/javascript/load-maps-js-api#dynamic-library-import),\nyou can load the needed libraries at runtime by using the `await` operator to\ncall `importLibrary()`, as shown here: \n\n const { Place } = await google.maps.importLibrary(\"places\");\n\nIf your app uses the [direct script loading tag](/maps/documentation/javascript/load-maps-js-api#use-legacy-tag),\nrequest the `places` library in the loader script:\n\n\n```html\n\u003cscript async\n src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap\"\u003e\n\u003c/script\u003e\n```\n\n\u003cbr /\u003e\n\n[Learn more about loading the Maps JavaScript API.](/maps/documentation/javascript/load-maps-js-api)\n\nThis section includes the following guides to help you migrate your apps to use\nthe newest version of the Places API:\n\n- [Migrate to Place Details](/maps/documentation/javascript/places-migration-details)\n- [Migrate to Text Search (New)](/maps/documentation/javascript/places-migration-search)\n- [Migrate to Nearby Search (New)](/maps/documentation/javascript/places-migration-nearby)\n- [Migrate to Place Photos](/maps/documentation/javascript/places-migration-photos)\n- [Migrate to Place Reviews](/maps/documentation/javascript/places-migration-reviews)\n- [Migrate to Place Autocomplete](/maps/documentation/javascript/places-migration-autocomplete)"]]