一切就绪!

着手开发前,请先阅读我们的开发者文档

激活 Google Places API for Android

为帮助您起步,我们将引导您在 Google 开发者控制台中先完成几项任务:

  1. 创建或选择项目
  2. 激活 Google Places API for Android
  3. 创建相应密钥
继续

地点 ID 和详情

Google Places API for Android 为您的应用提供了有关地点的丰富信息,包括地点的名称和地址、以纬度/经度坐标指定的地理位置、地点类型(如夜总会、宠物店、博物馆)等。要访问有关特定地点的这些信息,可使用地点 ID,即唯一标识地点的稳定标识符。

  1. 地点详情
  2. 按 ID 获取地点
  3. 在应用中显示提供方说明
  4. 更多关于地点 ID 的内容

地点详情

Place 对象提供关于指定地点的信息。您可以通过以下方式获取 Place 对象:

使用以下方法从 Place 检索数据:

  • getName() – 地点的名称
  • getAddress() – 以可人工识别的格式表示的地点地址
  • getID() – 地点的文本标识符。在下文阅读更多关于地点 ID 的内容。
  • getPhoneNumber() – 地点的电话号码
  • getWebsiteUri() – 地点网站的 URI(如果已知)。这是由商家或与该地点关联的其他实体维护的网站。如果没有已知网站,则会返回 null。
  • getLatLng() – 地点的地理位置,由纬度和经度坐标指定。
  • getViewport() – 一个视口,作为 LatLngBounds 对象返回,便于在地图上显示地点。如果地点的大小未知,可能会返回 null。
  • getLocale() – 用于本地化地点名称和地址的区域设置
  • getPlaceTypes() – 描述此地点特征的地点类型列表。有关可用地点类型的列表,请参见适用于 Place 界面的文档。
  • getPriceLevel() – 此地点的价位,以整数形式返回,其值范围为 0(最便宜)到 4(最昂贵)
  • getRating() – 地点的总体评分,以浮点值形式返回,以用户总体评论为依据,其值范围为 1.0 到 5.0

以下是一些简单示例:

final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

按 ID 获取地点

地点 ID 是唯一标识地点的文本标识符。在 Google Places API for Android 中,您可以通过调用 Place.getId() 来检索地点 ID。地点自动完成服务还会返回与提供的搜索查询和筛选器匹配的每个地点的地点 ID。您可以存储地点 ID,以后重新使用它来检索 Place 对象。

要按 ID 获取地点,请调用 GeoDataApi.getPlaceById,传递一个或多个地点 ID。

API 会在 PendingResult 中返回 PlaceBufferPlaceBuffer 包含一个与提供的地点 ID 匹配的 Place 对象列表。

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
  @Override
  public void onResult(PlaceBuffer places) {
    if (places.getStatus().isSuccess() && places.getCount() > 0) {
      final Place myPlace = places.get(0);
      Log.i(TAG, "Place found: " + myPlace.getName());
    } else {
      Log.e(TAG, "Place not found");
    }
    places.release();
  }
});

在应用中显示提供方说明

如果您的应用要显示通过 GeoDataApi.getPlaceById 获取的信息,则该应用还必须显示提供方说明。请参阅关于提供方说明的文档。

更多关于地点 ID 的内容

Google Places API for Android 中使用的地点 ID 即是 Google Places API Web Service 中使用的标识符。

每个地点 ID 都只能指代一个地点,但单个地点可以具有多个地点 ID。处理一个地点有多个 ID 的最常见情况是,您最初添加某个地点时其作用域仅限于您的应用,但后来该地点通过审核,其作用域扩大为 Google 范围。

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

通过指定地点 ID 请求地点时,可以确信会始终在响应中获得相同地点(如果该地点仍然存在)。但请注意,响应可能包含与请求中的地点 ID 不同的 ID。

如需了解详细信息,请参阅地点 ID 概览

发送以下问题的反馈:

此网页
location_on
Google Places API for Android