一切就绪!

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

激活 Google Places API for Android

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

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

地点选取器

地点选取器 UI 小工具

地点选取器是一款简单而灵活的内置 UI 小工具,是 Google Places API for Android 的一部分。

地点选取器简介

PlacePicker 提供一个 UI 对话框,其中会显示一个交互式地图和一个附近地点列表,地图和列表中包括对应于地理地址和当地商家的地点。用户可以选择一个地点,然后,您的应用即可检索所选地点的详情。

相较于开发自己的 UI 小工具,地点选取器具有以下优点:

  1. 用户体验与使用地点选取器的其他应用(包括 Google 应用和第三方应用)一致。这意味着应用的用户已经了解如何与地点选取器互动
  2. 地图已集成到地点选取器中
  3. 内置辅助工具
  4. 节省开发时间。

地点选取器具有自动填充功能,可根据用户输入的搜索内容显示地点预测。所有地点选取器集成中都有此功能,因此,您无需执行任何其他操作即可启用自动填充。如需了解有关自动填充的更多信息,请参阅地点自动填充

权限

如果您的应用使用地点选取器,则您必须请求 ACCESS_FINE_LOCATION 权限。

Android 6.0 Marshmallow 中的新权限模型

Android 6.0 Marshmallow 引入新的权限处理模型,简化了用户安装和升级应用的过程。如果您使用的是 8.1 版或更高版本的 Google Play 服务,您可以针对 Android 6.0 Marshmallow SDK 配置您的应用,并使用新的权限模型。

如果您的应用支持这种新权限模型,则用户无需在安装或升级应用时授予任何权限。在这种模型中,应用必须在运行时需要权限时请求权限,并且系统会向用户显示请求权限的对话框。

如需了解更多信息,请参阅相关文档了解 Android 6.0 Marshmallow 以及针对新的权限模型您必须对应用进行哪些更改。

添加地点选取器

下面概要列出了启动地点选取器所需的步骤:

  1. 使用 PlacePicker.IntentBuilder() 构建 Intent
  2. 如果您希望更改地点选取器的默认行为,则可以使用生成器来设置地点选取器所显示的地图的初始纬度和经度边界。在生成器上调用 setLatLngBounds(),传递 LatLngBounds 以设置初始纬度和经度边界。这些边界定义一个称为“视口”的区域。默认情况下,视口位于设备所处位置的中心,在城区级别缩放。
  3. 调用 startActivityForResult(),向其传递 Intent 和预定义请求代码,这样,您可以在返回结果时识别请求。

以下代码段会启动地点选取器:

int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);

用户选择地点后,您可以通过调用 PlacePicker.getPlace() 来检索地点。如果用户尚未选择地点,该方法将会返回 null。

您也可以通过调用 PlacePicker.getLatLngBounds() 检索地图的最新边界。

以下代码段会检索用户已选择的地点:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == PLACE_PICKER_REQUEST) {
    if (resultCode == RESULT_OK) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
  }
}

使用材料主题设置自定义颜色

如果您使用材料主题在您的应用中设置自定义颜色,则地点选取器会从主题继承 colorPrimarycolorPrimaryDark 属性。这有利于在应用和地点选取器之间保持一致的品牌风格。

在应用中显示提供方说明

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

发送以下问题的反馈:

此网页
location_on
Google Places API for Android