Android Google MapGeocoder 实现地理编码搜索位置

17 Mar 2025 | 4 分钟阅读

在前一节的 Android Google Map 和 Android Google Map 显示当前位置教程中,我们分别描述了显示基本 Google Map 和当前位置。

现在在本教程中,我们将实现 Google Map 中的位置搜索功能。

Google Map API 中的位置搜索是通过 Geocoder 类完成的。Geocoder 类用于处理地理编码反向地理编码

地理编码是将街道地址转换为坐标(纬度、经度)的过程。反向地理编码是将坐标(纬度、经度)转换为地址的过程。

Geocoder 类的方法

  1. List<Address> getFromLocation(double latitude, double longitude, int maxResults): 此方法返回一个 Address 数组,指定周围的纬度和经度。
  2. List<Address> getFromLocationName(String location, int results, double leftLatitude, double leftLongitude, double rightLatitude, double rightLongitude): 此方法返回一个 Address 数组,描述给定位置,例如地点、地址等。
  3. List<Address> getFromLocationName(String location, int results): 此方法返回一个 Address 数组,描述给定位置,例如地点、地址等。
  4. static boolean isPresent(): 如果实现了 getFromLocation() 和 getFromLocationName() 方法,则此方法返回 true。

让我们看看将位置名称转换为坐标的代码。

Android Google Map API 搜索位置示例

让我们看一个搜索输入位置的 Google Map 示例。

activity_maps.xml

在 activity_maps.xml 文件中添加一个 fragment (SupportMapFragment)、EditText 和 Button。

build.gradel

build.gradle 文件中添加以下依赖项。

MapsActivity.java

MapsActivity.java 文件中添加以下代码。

AndroidManifest.xml 中所需的权限

AndroidManifest.xml 文件中添加以下用户权限。

AndroidManifest.xml

输出

android Search Location 1
android Search Location 2
android Search Location 3