自訂路線多邊形 (或標記) 之前,您必須先初始化 UI 自訂選項。
初始化 UI 自訂選項
建議的回呼,用來初步設定 UI 自訂選項
是在 GMTCMapViewDelegate
中宣告。mapViewDidInitialize
GMTCMapView
物件準備好算繪地圖時,就會觸發回呼。
樣式協調器已初始化,但沒有 UI 元素。
Swift
/** ViewController.swift */
class ViewController: UIViewController, GMTCMapViewDelegate {
// MARK: - GMTCMapViewDelegate
func mapViewDidInitialize(_ mapview: GMTCMapView) {
// Set the UI customization options here.
}
}
Objective-C
/** ViewController.m */
@interface ViewController () <GMTCMapViewDelegate>
#pragma mark GMTCMapViewDelegate
- (void)mapViewDidInitialize:(GMTCMapView *)mapview {
// Set the UI customization options here.
}
自訂折線
折線自訂功能可使用 GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
設定。
以下範例說明如何設定折線樣式選項:
折線類型
您可以自訂下列多邊形類型:
GMTCPolylineType.activeRoute
:車輛前往指定地點的路線 乘客的下一個點,無論是上車或下車都一樣。GMTCPolylineType.remainingRoute
:車輛完成GMTCPolylineType.activeRoute
後,行程剩餘的路段。
這兩種類型都會顯示在共用歷程中。
折線屬性
您可以為每一條折線自訂的屬性,是
「Google 地圖」上的房源
PolylineOptions
。
消費者 SDK
GMTCPolylineStyleOptions
敬上
屬性具有以下特徵:
- 使用初始化器建構。
- 如要為任何資源提供自訂值,可以是不可變或可變。
- 具有預設值。
您可以自訂下列屬性:
color
width
isVisible
:如要停用折線,請將isVisible
設為false
。isTrafficEnabled
:此屬性預設為false
。
範例
Swift
/** MapViewController.swift */
private func updatePolylineUIOptions() {
// Get the GMTCConsumerMapStyleCoordinator
let consumerMapStyleCoordinator = mapView.consumerMapStyleCoordinator
// The polyline type that you would like to set custom UI options for.
let customizablePolylineType = GMTCPolylineType.activeRoute
// Initializing polyline options with default values (immutable version).
let polylineStyleOptions = GMTCPolylineStyleOptions()
consumerMapStyleCoordinator.setPolylineStyleOptions(
polylineStyleOptions, polylineType: customizablePolylineType)
// Initializing polyline options with custom values (mutable version).
let mutablePolylineStyleOptions = GMTCMutablePolylineStyleOptions()
mutablePolylineStyleOptions.isVisible = true
mutablepolylineStyleOptions.strokeWidth = 8.0
mutablepolylineStyleOptions.strokeColor = .blue
mutablepolylineStyleOptions.zIndex = 1000
mutablepolylineStyleOptions.isGeodesic = true
mutablePolylineStyleOptions.isTrafficEnabled = true
mutablePolylineStyleOptions.setTrafficColorFor(.slow, color: .yellow)
mutablePolylineStyleOptions.setTrafficColorFor(.trafficJam, color: .purple)
consumerMapStyleCoordinator.setPolylineStyleOptions(
mutablePolylineStyleOptions, polylineType: customizablePolylineType)
// Reset polyline options to default values.
consumerMapStyleCoordinator.setPolylineStyleOptions(
nil, polylineType: customizablePolylineType)
}
Objective-C
/** MapViewController.m */
- (void)updatePolylineUIOptions {
// Get the GMTCConsumerMapStyleCoordinator
GMTCConsumerMapStyleCoordinator *consumerMapStyleCoordinator = [_mapView consumerMapStyleCoordinator];
// The polyline type that you would like to set custom UI options for.
GMTCPolylineType customizablePolylineType = GMTCPolylineTypeActiveRoute;
// Initializing polyline options with default values (immutable version).
GMTCPolylineStyleOptions *polylineStyleOptions = [[GMTCPolylineStyleOptions alloc] init];
[consumerMapStyleCoordinator setPolylineStyleOptions:polylineStyleOptions
polylineType:customizablePolylineType];
// Initializing polyline options with custom values (mutable version).
GMTCMutablePolylineStyleOptions *mutablePolylineStyleOptions = [[GMTCMutablePolylineStyleOptions alloc] init];
mutablePolylineStyleOptions.isVisible = YES;
mutablepolylineStyleOptions.strokeWidth = 8.0;
mutablepolylineStyleOptions.strokeColor = [UIColor blueColor];
mutablepolylineStyleOptions.zIndex = 1000;
mutablepolylineStyleOptions.isGeodesic = YES;
mutablePolylineStyleOptions.isTrafficEnabled = YES;
[mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeSlow color:[UIColor yellowColor]];
[mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeTrafficJam color:[UIColor purpleColor]];
[consumerMapStyleCoordinator setPolylineStyleOptions:mutablePolylineStyleOptions
polylineType:customizablePolylineType];
// Reset polyline options to default values.
[consumerMapStyleCoordinator setPolylineStyleOptions:nil
polylineType:customizablePolylineType];
}
可偵測交通情形的折線
折線的車流量圖層預設為停用。使用 polylineStyleOptions.isTrafficEnabled = true
啟用這項功能後,代表非正常流量區段的線段會繪製為路線。
路況以下列四種速度表示:
GMTSSpeedType.noData
GMTSSpeedType.normal
GMTSSpeedType.slow
GMTSSpeedType.trafficJam
您可以自訂代表每個速度分類的顏色
透過 setTrafficColorFor(_:color:)
。