地点 ID

地点 ID 在 Google Places 数据库和 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 Maps JavaScript API 中的 Google Places API Web ServicePlaces 库),然后使用返回的地点 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 Places 数据库中。如果获得批准,该地点将收到一个新的地点 ID,该 ID 可用于所有应用以及 Google 地图。有关更多详情,请参阅有关添加地点的文档。

还有其他情况会导致地点获取新的地点 ID。例如,如果商家搬到新位置,会获取新的地点 ID。

下图显示了地点具有多个地点 ID 的一种可能情况:

检索具有多个 ID 的地点

如果某个地点具有多个 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 值。

发送以下问题的反馈:

此网页