境界線用データドリブン スタイル設定でプレイス サービスと Geocoding API を使用する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Maps SDK for Android でプレイス サービスと Geocoding API を使用して、地域を検索したり、場所の詳しい情報を取得したりすることができます。プレイス サービスと Geocoding API は、プレイス ID を取得できる便利で安定性の高い代替ツールです。すでにプレイス ID を使用している場合、それらの ID を境界線用データドリブン スタイル設定に流用できます。
プレイス サービスとジオコーディングは次の方法で Maps SDK for Android のアプリに追加できます。
プレイス サービスを使用する
テキスト検索(新版)を使ってプレイス ID を取得する
Places API でテキスト検索(新版)の REST API を使用し、フィールド マスクに places.id
を指定することで、地域データを含むプレイス ID を取得できます。テキスト検索(新版)を使ってプレイス ID をリクエストしても、料金は発生しません。詳細
たとえば、次の API 呼び出しでカリフォルニア州トリニダード市のプレイス ID を取得できます。
curl -X POST -d '{
"textQuery" : "Trinidad, CA"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'
Places Autocomplete を使用して地域を検索する
Places SDK for Android の Place Autocomplete サービスを使用すると、ユーザーが地域を簡単に検索できるようになります。地域のみを返すように Places Autocomplete サービスを設定するには、AutocompleteSupportFragment.setTypesFilter(List)
でタイプのフィルタを PlaceTypes.REGIONS
に設定します。
地域内の場所の詳細を取得する
Places SDK for Android の Place Details サービスで返される地域データは非常に便利です。たとえば、次のことができます。
- 地名に基づいて境界線のプレイス ID を検索する。
- 境界線にズームするビューポートを取得する。
- 境界線の対象物タイプ(
locality
など)を取得する。
- フォーマット済みの住所を取得する。米国であれば「地名、州、国」に変換されます(例:「オタムワ、アイオワ、米国」)。
- 写真など、その他の便利なデータを取得する。
Geocoding API を使用する
Geocoding API を使用して、住所を緯度と経度の座標やプレイス ID に変換したり、緯度と経度の座標やプレイス ID を住所に変換したりできます。境界線用データドリブン スタイル設定と組み合わせて、次のような用途に使用できます。
- ジオコーディングを使用して地域のビューポートを取得する。
- ジオコーディングの呼び出しにコンポーネントのフィルタリングを適用して、行政区域 1~4、地域区分、または郵便番号のプレイス ID を取得する。
- リバース ジオコーディングを使用して緯度と経度の座標でプレイス ID を取得する、または特定の場所にあるすべてのコンポーネントのプレイス ID を返す。
次の例では、住所(エスケープ済み URL)を使用して Geocoding API に対するリクエストを行います。
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
リバース ジオコーディングを使用してプレイス ID を見つけることができます。以下の例のジオコーディング サービスの関数は、指定された緯度と経度の座標にあるすべての住所コンポーネントのプレイス ID を返します。
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
リバース ジオコーディングにコンポーネント フィルタリングを組み合わせて、指定された場所の、以下の 1 つ以上のタイプの住所コンポーネントを取得します。
administrativeArea
country
locality
postalCode
次の例の関数では、ジオコーディング サービスでリバース ジオコーディングにコンポーネントの制限を追加して、指定された場所の locality
タイプの住所コンポーネントのみをすべて取得します。
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-03 UTC。
[null,null,["最終更新日 2024-12-03 UTC。"],[[["\u003cp\u003eYou can use the Places Service and Geocoding API with the Maps SDK for Android to find place IDs for regions and get more information about them for data-driven styling.\u003c/p\u003e\n"],["\u003cp\u003eThe Places SDK for Android, Places API, and Geocoding API can be used to search for regions and retrieve their details, including place IDs, viewport, feature type, and formatted address.\u003c/p\u003e\n"],["\u003cp\u003eText Search (New) in the Places API, Places Autocomplete in the Places SDK for Android, and the Geocoding API are methods for obtaining place IDs.\u003c/p\u003e\n"],["\u003cp\u003eWhen using these services, be aware that the Places SDK for Android, Places API, and Geocoding API require enabling and are billed separately from the Maps SDK for Android.\u003c/p\u003e\n"]]],[],null,["# Use the Places Service and Geocoding API with data-driven styling for boundaries\n\nSelect platform: [Android](/maps/documentation/android-sdk/dds-boundaries/dds-use-maps-places-apis \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/dds-boundaries/dds-use-maps-places-apis \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/dds-boundaries/dds-use-maps-places-apis \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nYou can use the Places Service and the\nGeocoding API with the Maps SDK for Android to search for regions, and\nget more information about places. The Places Service\nand Geocoding API are powerful and stable alternatives for obtaining\nplace IDs. If you're already using place IDs, you can reuse those IDs with\ndata-driven styling for boundaries.\n\nAdd the Places Service and Geocoding to your\nMaps SDK for Android apps in the following ways:\n\n- [Places SDK for Android](/maps/documentation/places/android-sdk) is an Android library containing methods to returns information about places.\n- [Places API](/maps/documentation/places/web-service) returns information about places using HTTP requests.\n- [Geocoder class](https://developer.android.com/reference/android/location/Geocoder) can geocode and reverse geocode dynamically from user input.\n- [Geocoding API](/maps/documentation/geocoding) lets you geocode static, known addresses.\n\n| **Note:** The [Places SDK for Android](/maps/documentation/places/android-sdk), [Places API](/maps/documentation/places/web-service), and [Geocoding API](/maps/documentation/geocoding/cloud-setup) must be enabled, and are billed separately from the Maps SDK for Android.\n\nUse the Places Service\n----------------------\n\n### Use Text Search (New) to find a place ID\n\nYou can use [Text Search (New)](/maps/documentation/places/web-service/text-search)\nREST API in the Places API to get a place ID that includes region\ndata by specifying `places.id` in the field mask. Usage of the\nText Search (New) to request place IDs only incurs\nno charge. [Learn more](/maps/documentation/places/web-service/preview-billing).\n\nFor example, to get the place ID for Trinidad, CA you can make the following\nAPI call: \n\n```\ncurl -X POST -d '{\n \"textQuery\" : \"Trinidad, CA\"\n}' \\\n-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: \u003cvar translate=\"no\"\u003eAPI_KEY\u003c/var\u003e' \\\n-H 'X-Goog-FieldMask: places.id' \\\n'https://places.googleapis.com/v1/places:searchText'\n```\n\n### Use Places Autocomplete to find regions\n\nThe [Places Autocomplete](/maps/documentation/places/android-sdk/autocomplete)\nservice in the Places SDK for Android provides a convenient way to let\nyour users search for regions. To configure the Places Autocomplete service to\nreturn only regions, use\n[`AutocompleteSupportFragment.setTypesFilter(List)`](/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment#setTypesFilter(java.util.List%3Cjava.lang.String%3E))\nto set the type filter to `PlaceTypes.REGIONS`.\n\n### Get place details for a region\n\nThe [Place Details](/maps/documentation/places/android-sdk/place-details)\nservice in the Places SDK for Android returns data for a region can be\nquite useful. For example, you can:\n\n- Search for boundary place IDs based on place names.\n- Get the viewport for zooming to a boundary.\n- Get the feature type for the boundary (for example `locality`).\n- Get the formatted address, which resolves to \"Place Name, State, Country\" in the United States region (for example, \"Ottumwa, IA, USA\").\n- Get other useful data such as photos.\n\nUse the Geocoding API\n---------------------\n\nThe [Geocoding API](/maps/documentation/geocoding) lets you convert\nan address into latitude and longitude coordinates and a Place ID, or converts\nlatitude and longitude coordinates or a Place ID into an address. The following\nuses combine well with data-driven styling for boundaries:\n\n- Use Geocoding to get the viewport for a region.\n- Apply component filtering to your Geocoding call to get the place IDs for administrative areas 1-4, locality, or postal code.\n- Use reverse geocoding to find place IDs by latitude and longitude coordinates, or even return place IDs for all components in a particular location.\n\nThe following example uses an address (url-escaped) to make a request to the\nGeocoding API: \n\n```html\nhttps://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY\n```\n\nYou can use [reverse geocoding](/maps/documentation/geocoding/requests-reverse-geocoding)\nto find place IDs. The following example Geocoding\nservice function returns the place IDs for all address components at the\nspecified latitude and longitude coordinates: \n\n```html\nhttps://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY\n```\n\nUse reverse geocoding with component filtering to get the address component\nfor one or more of the following types at the specified location:\n\n- `administrativeArea`\n- `country`\n- `locality`\n- `postalCode`\n\nThe next example function shows using the Geocoding service, adding component\nrestrictions with reverse geocoding to get all of the address components at the\nspecified location for only the `locality` type: \n\n```html\nhttps://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY\n```"]]