使用 Maps SDK for Android v3.1.0 Beta 版

Maps SDK for Android v3.1.0 Beta 版是一种新的实现方式,其 API 表面与上一个版本相同(所有类和方法保持不变),但添加了一些新功能供您试用:

  • 地图自定义
  • 标记冲突处理
  • 多段线自定义

本指南将向您介绍如何使用这些新功能。

地图自定义(Beta 版)

地图自定义提供了多种工具和功能,可让您更轻松地定制和管理地图的样式设置。您可以在 Google Cloud Console 中管理地图并为其设置样式,而不需要使用 Maps API 和 SDK 在代码中设置地图样式。有关详情,请参阅 Android 地图自定义概览

标记冲突处理(Beta 版)

您可以指定自定义标记是否应在发生冲突时替换默认的基本地图标签,并指明自定义标记之间的相对优先级。如需了解详情,请参阅标记冲突处理 (Android)

多段线自定义(Beta 版)

现在,您可以通过几种新方法自定义多段线的外观:

  • 多色多段线:将多段线的各个线段设置为不同的颜色。
  • 渐变多段线:使用 2 种渐变的颜色为多段线着色。
  • 带有时间戳的多段线:使用重复位图来为多段线设置样式。

创建多色多段线

您可以使用 span 分别为多段线的各个线段着色,方法是创建 StyleSpan 对象,并使用 addSpan()addSpans() 方法将它们添加到 PolylineOptions 中。默认情况下,数组中的每个项将用来设置相应线段的颜色。以下示例展示了如何通过设置线段颜色来创建带有红色和绿色线段的多段线:

Java

Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(Color.RED))
        .addSpan(new StyleSpan(Color.GREEN)));
      

Kotlin

val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(StyleSpan(Color.RED))
        .addSpan(StyleSpan(Color.GREEN))
)
      

创建渐变多段线

您可以通过指定两个 32 位 Alpha-红-绿-蓝 (ARGB) 整数来指定描边的起始颜色和结束颜色,以这种方式定义渐变。可通过调用 PolylineOptions.addSpan() 在形状的 options 对象上设置该属性。以下示例展示了如何创建从林地公园动物园到华盛顿州柯克兰的红色到黄色渐变多段线。

Java

Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.RED, Color.YELLOW).build())));
      

Kotlin

val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(
            StyleSpan(
                StrokeStyle.gradientBuilder(
                    Color.RED,
                    Color.YELLOW
                ).build()
            )
        )
)
      

创建带有时间戳的多段线

您可以将多段线的外观设置为重复的位图纹理。为此,请创建值为 TextureStyleStampStyle,然后通过调用 PolylineOptions.addSpan() 在形状的 options 对象上设置此属性,如下所示:

Java

StampStyle stampStyle =
        TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build();
StyleSpan span = new StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build());
map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(span));
      

Kotlin

val stampStyle =
    TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build()
val span = StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build())
map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(span)
)
      

导入与 Beta 版兼容的实用程序库

如果您使用的是 Google Maps Android API 实用程序库,则还需要更新项目依赖项,将现有版本替换为与 Beta 版兼容的版本,具体操作如下:

  1. build.gradle 文件中导入与 Beta 版兼容的实用程序库:
    implementation 'com.google.maps.android:android-maps-utils-v3:1.3.1'
    
  2. build.gradle 中移除以下内容,以便移除与 Beta 版不兼容的实用程序库:
    implementation 'com.google.maps.android:android-maps-utils:1.3.1'
    

运行示例应用

GitHub 上的 Google Samples 代码库包含相关示例应用,可演示如何使用 v3.1.0 Beta 版 Maps SDK for Android。