Maps SDK for Android v3.1.0 Beta 版是一种新的实现方式,其 API 接口与上一个版本相同(所有类和方法保持不变),但添加了一些新功能供您试用:
- 地图自定义
- 标记冲突处理
- 多段线自定义
本指南将向您介绍如何使用这些新功能。
地图自定义(Beta 版)
云端地图样式设置提供了多种工具和功能,可让您更轻松地定制和管理地图的样式设置。您可以在 Google Cloud 控制台中管理地图并为其设置样式,而不需要使用 Maps API 和 SDK 在代码中设置地图样式。有关详情,请参阅 Android 地图自定义概览。
标记冲突处理(Beta 版)
您可以指定自定义标记是否应在发生冲突时替换默认的基本地图标签,并指明自定义标记之间的相对优先级。如需了解详情,请参阅标记冲突处理 (Android)。
多段线自定义(Beta 版)
现在,您可以通过几种新方法自定义多段线的外观:
- 多色多段线:将多段线的各个线段设置为不同的颜色。
- 渐变多段线:使用 2 种颜色之间的渐变效果为多段线着色。
- 印花多段线:使用重复显示的位图来为多段线设置样式。
创建多色多段线
您可以使用 span 分别为多段线的各个线段着色,方法是创建 StyleSpan
对象,并使用 addSpan()
或 addSpans()
方法将它们添加到 PolylineOptions
中。默认情况下,该数组中的每一项将用来设置相应线段的颜色。以下示例展示了如何通过设置线段颜色来创建带有红色和绿色线段的多段线:
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)) )
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)));
创建渐变多段线
您可以通过指定两个 32 位 Alpha-红-绿-蓝 (ARGB) 整数来指定描边的起始颜色和结束颜色,以这种方式定义渐变。可通过调用 PolylineOptions.addSpan()
在形状的 options 对象上设置此属性。以下示例展示了如何在华盛顿州的林地公园动物园与柯克兰之间创建颜色由红色变为黄色的渐变多段线。
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() ) ) )
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())));
创建印花多段线
您可以将多段线的外观设置为重复显示的位图纹理。为此,请创建值为 TextureStyle
的 StampStyle
,然后通过调用 PolylineOptions.addSpan()
来在形状的 options 对象中设置此属性,如下所示:
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) )
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));
导入与 Beta 版兼容的实用程序库
如果您使用的是 Google Maps Android API 实用程序库,则还需要更新项目依赖项,将现有版本替换为与 Beta 版兼容的版本,具体操作如下:
- 在
build.gradle
文件中导入与 Beta 版兼容的实用程序库:implementation 'com.google.maps.android:android-maps-utils-v3:1.3.1'
- 从
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。
- Maps SDK for Android 示例应用
- Places SDK for Android 示例应用(仅可与 Maps v3.1.0 Beta 版一起使用)