場所 ID は、Google プレイスのデータベースと Google マップで、プレイスを一意に識別します。場所 ID は、次の Maps API へのリクエストで承認されます。
- Geocoding API ウェブサービス、ジオコーディング サービス、Maps JavaScript API で場所 ID の住所を取得する。
- Directions API ウェブサービス、ルートサービス、Maps JavaScript API で出発地、目的地、中間地点を指定する。
- Distance Matrix API ウェブサービス、Distance Matrix Service、Maps JavaScript API で出発地と目的地を指定する。
- Places API ウェブサービス、Places SDK for Android、Places SDK for iOS、Places Library、JavaScript API で Place Details を取得する。
- Maps Embed API で場所 ID パラメータを使用する。
- マップの URL で検索クエリを取得する。
- Roads API で制限速度を表示する。
- データドリブン スタイル設定における境界ポリゴンの検索とスタイル設定
特定の場所 ID の取得
特定の場所 ID を検索する場合は、以下の場所 ID 検索ツールを使用して場所を検索し、ID を取得してください。
または、Maps JavaScript API のドキュメントにあるコードを使用して、場所 ID 検索ツールを表示することもできます。
概要
場所 ID は、場所を一意に識別するテキスト表記の ID です。識別子の長さはさまざまです(場所 ID の長さに上限はありません)。例:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM
-
GhIJQWDl0CIeQUARxks3icF8U8A
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
-
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
場所 ID は、お店やサービス、名所、公園、交差点など、大部分の場所に利用できます。同じ場所や拠点に、複数の場所 ID が付与される場合もあります。場所 ID は今後変更される可能性があります。
Places API と複数の Google Maps Platform API で、同じ場所 ID を使用できます。たとえば、Places API、Maps JavaScript API、Geocoding API、Maps Embed API、Roads API で、同じ場所 ID を使用して場所を参照することができます。
場所 ID を使用して Place Details を取得
場所 ID は、Google Maps Platform 利用規約のセクション 3.2.3(b)で定められているキャッシュ制限の対象外となります。ある場所の場所 ID を確認したら、以降、その場所を検索するときにその値を再利用できます。詳しくは、下記の場所 ID を後で使えるように保存するをご覧ください。
一般的に場所 ID は、(Maps JavaScript API の Places API やプレイス ライブラリなどを利用して)場所を検索し、返された場所 ID で Place Details を取得するために使用されます。場所 ID を保存しておき、保存しておいた場所 ID を使用して後で同じ Place Details を取得することもできます。詳しくは、下記の場所 ID を保存するをご覧ください。
Places SDK for iOS の使用例
場所 ID は、場所を一意に識別するテキスト表記の ID です。Places SDK for iOS では、GMSPlace
オブジェクトからプレイスの ID を取得できます。場所 ID を保存して、後で GMSPlace
オブジェクトを再度取得することもできます。
ID で場所を取得するには、GMSPlacesClient
fetchPlaceFromPlaceID:
を呼び出して、次のパラメータを渡します。
- プレイス ID を含む文字列です。
- 返されるデータ型を指定する 1 つ以上の
GMSPlaceField
。 - オートコンプリート クエリを終了するために呼び出しが行われた場合のセッション トークン。 それ以外の場合は nil を渡します。
- 結果を処理する
GMSPlaceResultCallback
。
API は、指定されたコールバック メソッドを呼び出して、GMSPlace
オブジェクトを渡します。場所が見つからない場合、プレイス オブジェクトは nil になります。
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
後で使用するためのプレイス ID の保存
場所 ID は、Google Maps Platform 利用規約のセクション 3.2.3(b)で定められているキャッシュ制限の対象外となります。後で使用するために場所 ID の値を格納できます。
保存済みの場所 ID を更新する
12 か月以上経過している場所 ID は、更新することをおすすめします。場所 ID は無料で更新できます。更新する場合は、fields
パラメータの GMSPlaceFieldPlaceID
フィールドのみを指定して Place Details リクエストを実行します。
この呼び出しによって Places Details - ID 更新の SKU がトリガーされます。ただし、このリクエストは NOT_FOUND
ステータス コードを返すこともあります。対策として、それぞれの場所 ID を返した元のリクエストを保存しておくことをおすすめします。場所 ID が無効になった場合は、リクエストを再発行して新しい結果を取得することができます。この検索結果には、元の場所が含まれているとは限りません。リクエストは課金対象です。
プレイス ID 使用時のエラーコード
INVALID_REQUEST
ステータス コードは、指定された場所 ID が無効であることを意味します。場所 ID が不完全、または変更され、正しくない場合は、INVALID_REQUEST
が返されることがあります。
NOT_FOUND
ステータス コードは、指定された場所 ID が古くなっていることを意味します。お店やサービスが閉業した場合や移転した場合、場所 ID が古くなることがあります。Google マップ データベースの大規模な更新によって、場所 ID が変更される可能性があります。そのような場合、場所には新しい場所 ID が付与され、古い ID は NOT_FOUND
レスポンスを返します。
特に、場所 ID の種類によっては、NOT_FOUND
レスポンスが返される場合があります。また、API によって、レスポンスで別の場所 ID が返される場合もあります。これに該当する場所 ID の種類は次のとおりです。
- Google マップ上に正確な住所はないものの、住所の範囲から推定される番地。
- リクエストで都市や地域区分も指定されている場合の長いルートの区間。
- 交差点。
subpremise
タイプの住所コンポーネントが含まれる場所。
ほとんどの場合、こうした場所の ID は長い文字列になります(場所 ID の長さに上限はありません)。例:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4