如何使用地点 ID 从 Google Places JS API 检索地点详细信息?

How do I retrieve place details from the Google Places JS API using a place ID?

使用 Google Maps Places API 时,您可以创建附加到地图的 Autocomplete 元素以搜索其图书馆。

当您 select 一个地方时,您可以调用 autocomplete.getPlace() 来检索描述该地方的 JSON 对象。其中一个字段是 place_id、Google 的唯一引用。 Google 实际上允许存储这些:

Place IDs are exempt from the caching restrictions stated in Section 10.1.3 of the Google Maps APIs Terms of Service. You can therefore store place ID values indefinitely.

但是,文档中并不清楚如何使用此存储值来检索地点的详细信息。有没有什么方法,应该怎么用?

google.maps.places 命名空间中有一个名为 PlacesService 的对象。这有一个名为 getDetails() 的方法,它可以接受一个 ID。

令人困惑的是,PlacesService 对象需要创建一个 HTML 元素。如果您只想使用 getDetails,您将不需要随后使用此元素,因此您可以使用您喜欢的任何风格创建一个 - 下面的示例使用 jQuery:

var obj=$('<div>').appendTo('body');
var service=new google.maps.places.PlacesService(obj.get(0));
service.getDetails({placeId:''},function(PlaceResult, PlacesServiceStatus){
   // PlaceResult is an object
   // PlacesServiceStatus is a string
});

同样奇怪的是,传递给 getDetails 的对象在文档中被称为 PlaceDetailsRequest,但是这个 class 并不存在,它只是描述如何对象应该被格式化。