プレイス ID

プレイス ID は、Google プレイスのデータベースと Google マップで、プレイスを一意に識別します。

  1. 概要
  2. プレイス ID を使用したプレイス詳細の取得
  3. 複数のプレイス ID とプレイス ID スコーピングの扱い
  4. 特定の場所の ID の取得
  5. 後で使用するためのプレイス ID の保存

特定の場所の ID の取得

特定の場所のプレイス ID を検索する場合は、以下の Place ID Finder を使用して、プレイスを検索し ID を取得してください。

Google Maps JavaScript API のドキュメントのコードを使用して、Place ID Finder を表示することもできます。

概要

プレイス ID は、プレイスを一意に識別するテキスト表記の ID です。この ID は次の例に似ています(識別子の長さが異なる場合があります)。

ChIJrTLr-GyuEmsRBfy61i59si0

プレイス ID は、お店やサービス、名所、公園、交差点など、大部分の場所に利用できます。プレイス ID は不変であり、ID を一度確認すると、次にそのプレイスを調べるときにもその値を再利用できます。

同一のプレイス ID を Google Places API と複数の Google Maps API で利用することもできます。たとえば、同一のプレイス ID を使用して、Places APIGoogle Maps JavaScript APIGoogle Maps Geocoding APIGoogle Maps Embed API、および Google Maps Roads API でプレイスを参照することができます。

プレイス ID を使用したプレイス詳細の取得

プレイス ID は、特定の場所の情報を参照するための信頼性の高い手段です。一般的にプレイス ID は、(Google Places API Web Service または Google Maps JavaScript API のプレイス ライブラリなどを利用して)プレイスを検索し、返されたプレイス ID を用いてプレイス詳細を取得する用途で使用されます。プレイス ID を保存しておき、保存しておいたプレイス ID を使用して後で同じプレイス詳細を取得することもできます。

Google Maps JavaScript API でプレイス ライブラリを使用する例

プレイス ID を JavaScript アプリで使用するには、まず ID を取得します。ID は、プレイス検索、またはプレイス オートコンプリート サービスの getPlace() で返される PlaceResult から取得します。そして、このプレイス ID を使用して、プレイス詳細を取得します。

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

複数のプレイス ID とプレイス ID スコーピングの扱い

1 つのプレイス ID で参照できるのは 1 つのプレイスのみですが、1 つのプレイスが複数のプレイス ID を持つこともあります。1 つのプレイスで複数の ID を扱うケースとして最も多いのは、最初に自身のアプリケーションのみにスコープを限定したプレイスを追加した後で、そのプレイスが Google 全体をスコープする場合です。

Places API Web Service を使用してプレイスを追加すると、新たに追加したプレイスのプレイス ID をすぐに受け取ることができます。このプレイス ID のスコープは、自分のアプリケーションのみになります。その後、このプレイスは、モデレーション キューに登録され、Google プレイスのデータベースへの追加のための承認を待ちます。承認されると、プレイスは、すべてのアプリケーションと Google マップで利用できる新しいプレイス ID を受け取ります。詳細については、プレイスの追加をご覧ください。

1 つのプレイスが新たなプレイス ID を受け取る状況は他にもあります。たとえば、お店やサービスが新しい場所に移動するケースが考えられます。

次の図は、1 つのプレイスが複数のプレイス ID を持つシナリオの一例です。

複数の ID を持つプレイスの取得

1 つのプレイスが複数の ID を持つ場合、そのことが Places API リクエストに影響を与えることはありません。ただし、レスポンスには影響があります。

プレイス ID を指定してプレイスをリクエストする場合、そのプレイスが変わらず存在している限り、レスポンスで常に同じ場所を受け取ると考えられます。

ただし、レスポンスに、リクエストされたプレイスの複数のプレイス ID が含まれることや、リクエストで使用したプレイス ID と異なるプレイス ID が含まれることがあります。

  • Places API Web Service での動作: プレイスが複数の ID を持つ場合、Places API Web Service はそのプレイスのプライマリ ID と、その場所のすべての代替 ID を含む配列を返します。詳細については、プレイス詳細プレイス検索をご覧ください。
  • Places JavaScript ライブラリとその他の API での動作:特定のプレイス ID のプレイス詳細をリクエストすると、リクエストしたプレイスの詳細を受け取ることができます。ただし、前回のリクエストの後に、そのプレイスが新しい ID を受け取っていた場合、プレイス ID が異なることがあります。そのプレイスにアクセスするために元のプレイス ID を安全に使用し続けることもできますが、最も直前に返されたプレイス ID をできる限り使用することをお勧めします。

後で使用するためのプレイス ID の保存

プレイス ID は、Google Maps API の利用規約、セクション 10.5.d のキャッシング制限の適用外です。そのため、プレイス ID は無期限で保存できます。

フィードバックを送信...