一切就绪!

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

激活 Google Places API for Android

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

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

地点添加

您可以使用 Google Places API for Android 将地点添加至 Google Places 数据库。新添加的地点在添加后不久即可用于您的应用,并且将被添加到可能添加至 Google Places 数据库和 Google 地图的地点审核队列中。

  1. 添加地点
  2. 处理多个地点 ID 和地点 ID 作用域

添加地点

要添加地点,请调用 GeoDataApi.addPlace(),传递 AddPlaceRequest 对象,以指定要添加的地点的详情。

在创建 AddPlaceRequest 时,请包括以下信息:

  • 必填:商家、景点或其他地点的完整文本名称。限制为 255 个字符。
  • 必填:指定地点位置的 LatLng 对象。
  • 必填:可人工识别的地点 address。如果地点具有格式正确、易于人工识别的地址,则更有可能通过审核流程并被添加到 Google Places 数据库中。
  • 必填:描述此地点特征的地点类型列表。如需查看可用地点类型的列表,请参阅有关地点类型Place 接口中所定义常量的文档。
  • 可选:地点的 phoneNumber。这是以国际格式表示的电话号码。国际格式包含国家/地区代码,并且带有一个加号 (+) 前缀。例如,美国分公司 Google 山景城的国际电话号码为 +1 650-253-0000。如果地点具有格式正确的电话号码,则更有可能通过审核流程并被添加到 Google Places 数据库中。:您应该提供 phoneNumber 和/或 Uri
  • 可选:Uri 对象,包含此地点官方网站的网址,如商家主页。如果地点具有格式正确的网址,则更有可能通过审核流程并被添加到 Google Places 数据库中。:您应该提供 phoneNumber 和/或 Uri

API 会在 PendingResult 中返回 PlaceBufferPlaceBuffer 中包含已添加的地点。

产生的 Place 对象具有唯一的地点 ID,您的应用可以从该地点开始检索地点详情。所添加的地点在添加不久后也会出现在应用所发起的获取当前地点请求的结果中,以及应用所显示的地点选取器中。作用域由用于生成 API 密钥的项目 ID 确定。

新添加的地点将进入将被考虑添加到 Google Places 数据库的地点审核队列中。未通过审核流程的地点仍可通过地点 ID 在提交此地点的应用中检索,但将不再显示在获取当前地点请求结果、API 选取器或任何其他 API 方法中。通过审核的地点将对所有应用以及在 Google 地图上可见。

为了让地点更可能通过审核流程并添加到 Google Places 数据库中,添加请求应提供尽可能多的信息。具体来说,地址、电话号码和网站非常重要。

以下是添加澳大利亚东海岸曼利附近的一个野生动物保护区的代码示例。

AddPlaceRequest place =
    new AddPlaceRequest(
        "Manly Sea Life Sanctuary", // Name
        new LatLng(-33.7991, 151.2813), // Latitude and longitude
        "W Esplanade, Manly NSW 2095", // Address
        Collections.singletonList(Place.TYPE_AQUARIUM), // Place types
        "+61 1800 199 742", // Phone number
        Uri.parse("http://www.manlysealifesanctuary.com.au/") // Website
    );

Places.GeoDataApi.addPlace(mGoogleApiClient, place)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
        @Override
        public void onResult(PlaceBuffer places) {
            Log.i(TAG, "Place add result: " + places.getStatus().toString());
            Log.i(TAG, "Added place: " + places.get(0).getName().toString());
            places.release();
        }
    });

处理多个地点 ID 和地点 ID 作用域

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

添加地点后,您会立即收到该新地点的地点 ID。此地点 ID 仅适用于您的应用范围内。然后,该地点将进入审核队列,等待获批添加到 Google Places 数据库中。如果获得批准,该地点将收到一个新的地点 ID,该 ID 可用于所有应用以及 Google 地图。

通过指定地点 ID 请求地点时,可以确信会始终在响应中获得相同地点(如果该地点仍然存在)。

但请注意,响应可能包含与请求中的地点 ID 不同的 ID。如需了解详细信息,请参阅地点 ID 概览

发送以下问题的反馈:

此网页
location_on
Google Places API for Android