Maps SDK for Android 3.1.0 Beta 版是新版模式,與前一版使用同樣的 API 介面 (所有類別和方法均相同),並且提供下列新功能:
- 地圖自訂功能
- 標記衝突處理
- 折線自訂功能
本指南說明如何使用新功能。
地圖自訂功能 (Beta 版)
雲端式地圖樣式設定提供多種工具和地圖項目,讓您更輕鬆簡單地自訂及管理地圖的樣式。在 Google Cloud 控制台即可管理及設定地圖樣式,不需要另外透過 Maps API 和 SDK 使用程式碼來設定樣式;相關詳情請參閱這篇簡介 Android 地圖自訂功能的文章。
標記衝突處理 (Beta 版)
您可以指定發生衝突時自訂標記是否應覆寫預設的基本地圖標籤,以及自訂標記之間的相對優先順序。詳情請參閱標記衝突處理 (Android)。
折線自訂功能 (Beta 版)
新的折線外觀自訂方式如下:
- 多色折線:將每段折線設為不同的顏色。
- 漸層折線:使用兩種顏色的漸層為折線上色。
- 戳記折線:使用重複的點陣圖設定折線樣式。
建立多色折線
只要建立 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 位元的 ARGB (Alpha、紅、綠、藍) 整數,設定筆劃開始和結束的漸層色彩。如要設定形狀選項物件的這個屬性,請呼叫 PolylineOptions.addSpan()
。下列範例展示如何建立從華盛頓州 Woodland Park Zoo 到科克蘭的漸層折線 (顏色由紅轉黃)。
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()
並在形狀選項物件上設定這個屬性,如下所示:
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
中的「implementation 'com.google.maps.android:android-maps-utils:1.3.1'
」,即可移除與 Beta 版不相容的公用程式庫。
執行範例
GitHub 的 Google 範例存放區內含應用程式範例,示範 Maps SDK for Android 3.1.0 Beta 版的用法。
- Maps SDK for Android 範例
- Places SDK for Android 範例 (僅限搭配 Maps SDK for Android 3.1.0 Beta 版)