使用 Maps SDK for Android 3.1.0 Beta 版

Maps SDK for Android 3.1.0 Beta 版是新版模式,與前一版使用同樣的 API 介面 (所有類別和方法均相同),並且提供下列新功能:

  • 地圖自訂功能
  • 標記衝突處理
  • 折線自訂功能

本指南將說明如何使用新功能。

地圖自訂功能 (Beta 版)

地圖自訂功能提供多種工具和地圖項目,方便您更輕鬆自訂及管理地圖的樣式。您不用另外透過 Maps API 和 SDK 使用程式碼來設定樣式,在 Google Cloud Console 中就可以管理和設定地圖樣式。詳情請參閱 Android 地圖自訂功能總覽

標記衝突處理 (Beta 版)

您可以指定發生衝突時自訂標記是否應覆寫預設的基本地圖標籤,以及自訂標記之間的相對優先順序。詳情請參閱標記衝突處理 (Android)

折線自訂功能 (Beta 版)

現在您可以透過幾種新的方式來自訂折線的外觀:

  • 多色折線:將每段折線設為不同的顏色。
  • 漸層折線:使用兩種顏色的漸層為折線上色。
  • 戳記折線:使用重複的點陣圖設定折線樣式。

建立多色折線

只要建立 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 位元的 ARGB (Alpha、紅、綠、藍) 整數,以設定筆劃開始和結束的顏色。如要設定形狀選項物件的這個屬性,請呼叫 PolylineOptions.addSpan()。下列範例展示如何建立從華盛頓州 Woodland Park Zoo 到科克蘭、顏色由紅轉黃的漸層折線。

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() 並在形狀選項物件上設定這個屬性,如下所示:

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)
)