Kotlin Android Google 地图当前位置

17 Mar 2025 | 4 分钟阅读

为了在 Android 应用程序中实现 Google 地图,我们需要生成 Google 地图 API 密钥。创建 Google 地图 API 密钥的过程在 Google 地图固定位置 教程中描述。

在之前的 Kotlin Android Google 地图固定位置 教程中,我们已经展示了固定的 Google 位置。

现在在本教程中,我们将显示用户当前位置并在该位置放置标记。要查看用户的当前位置,我们需要实现一些 Google 地图接口并调用其回调方法。

Google 地图 API 接口

  1. OnMapRreadyCallback: 此接口在其实例设置在 MapFragment 对象上时调用。 当地图准备好使用时,将调用 OnMapReadyCallback 接口的 onMapReady(GoogleMap) 方法。在 onMapReady(GoogleMap) 方法中,我们可以添加标记、侦听器和其他属性。
  2. LocationListener: 此接口用于接收设备位置更改时的通知。 当位置发生变化时,会调用 LocationListener 接口的抽象方法 onLocationChanged(Location)。
  3. GoogleApiClient.ConnectionCallbacks: 此接口提供 onConnected(Bundle) 和 onConnectionSuspended(int) 回调方法,分别在设备连接和断开连接时调用。
  4. GoogleApiClient.OnConnectionFailedListener: 此接口提供 onConnectionFailed(ConnectionResult) 回调方法,该方法在设备连接到服务时发生错误时调用。

GoogleMap 的 isLocationEnabled 属性用于启用位置图层,该图层允许设备与当前位置进行交互。

使用 Java 显示 Google 地图用户当前位置的教程请参见 Android Google 地图显示当前位置

Google 地图的类型

地图 API 中有四种不同类型的 Google 地图可用。 它们每个都具有不同的地图视图。 这些类型是普通、混合、卫星和地形。

  • googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
  • googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
  • googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
  • googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

使用 Kotlin 语法,我们将使用上述 Google 地图类型作为

  • googleMap.mapType = MAP_TYPE_NONE
  • googleMap.mapType = MAP_TYPE_HYBRID
  • googleMap.mapType = MAP_TYPE_SATELLITE
  • googleMap.mapType = MAP_TYPE_TERRAIN

有关这些地图类型的详细信息,请在此处进行说明。

activity_maps.xml

在 activity_maps.xml 布局文件中添加以下代码。

strings.xml

build.gradle

在 build.gradle 文件中添加 Google Map Service 和 Google Location Service 依赖项。

google_maps_api.xml

将 Google Map API 密钥放置在 res/values/google_map_api.xml 文件中。

MapsActivity.kt

在 MapsActivity.kt 类文件中添加以下代码。

AndroidManifest.xml

输出

注意:请在真实的 Android 设备上进行检查,以获得最佳输出结果。

Kotlin Android Google Map Current Location
下一主题#