地點 ID

「地點 ID」可唯一識別「Google 地方資訊」資料庫和「Google 地圖」中的地點。

  1. 總覽
  2. 使用地點 ID 擷取地點詳細資料
  3. 處理多個地點 ID 和地點 ID 範圍
  4. 尋找特定地點的 ID
  5. 儲存地點 ID 供日後使用

尋找特定地點的 ID

您要尋找特定地點的地點 ID 嗎?使用下面的地點 ID 搜尋器來搜尋地點並取得其 ID:

或者,您也可以在 Google Maps JavaScript API 文件中檢視地點 ID 搜尋器及其程式碼。

總覽

地點 ID 是可唯一識別地點的文字型識別碼。它看起來很類似下列範例(識別碼的長度可能有異):

ChIJrTLr-GyuEmsRBfy61i59si0

大多數位置都有「地點 ID」,包括商家、地標、公園和十字路口。這些 ID 是固定的,表示一旦您識別了一個地點的地點 ID,下次當您查詢該地點時,就能重複使用該值。

您可以在 Google Places API 和許多 Google Maps API 中使用同一個地點 ID。例如,您可以使用同一個地點 ID 在 Places APIGoogle Maps JavaScript APIGoogle Maps Geocoding APIGoogle Maps Embed APIGoogle Maps Roads API 中參照地點。

使用地點 ID 擷取地點詳細資料

地點 ID 提供可靠方式來參照特定地點的資訊。使用地點 ID 的一個常見方法是搜尋地點(例如使用 Google Places API Web Service 或 Google Maps JavaScript API 中的 Places 程式庫),然後使用傳回的地點 ID 來擷取地點詳細資料。您也可以儲存地點 ID,之後再使用它來擷取相同的地點詳細資料。

在 Google Maps JavaScript API 中使用 Places 程式庫的範例

如果要在您的 JavaScript 應用程式中使用地點 ID,您必須先找出 ID,您可以在地點搜尋傳回的 PlaceResult,或在地點自動完成服務中傳回的 getPlace() 取得。然後您就可以使用地點 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 範圍

每個地點 ID 只能參照一個地點,但是一個地點可以有多個地點 ID。為一個地點處理多個 ID 的最常見的案例是,您新增一個最初只限於您的應用程式的地點,然後收到整個 Google 範圍的地點。

當您使用 Places API Web Service 新增地點時,您會立即收到新地點的地點 ID。此地點 ID 僅限於您的應用程式範圍。該地點接著會進入仲裁佇列,等待核准後納入「Google 地方資訊」資料庫。如果核准,則此地點會收到新的地點 ID,供所有應用程式以及在「Google 地圖」上使用。請參閱有關新增地點的文件,瞭解更多詳細資訊。

還有許多其他情況可能會導致一個地點會取得新的地點 ID。例如,如果商家搬到新位置,就可能會發生這種情況。

下圖顯示一個地點可能會有多個地點 ID 的情況:

擷取具有多個 ID 的地點

當一個地點有多個 ID 時,對 Places API 要求不會有任何影響。然而,它會影響回應。

當您透過指定地點 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 值。

傳送您對下列選項的寶貴意見...

這個網頁