Rota poli çizgilerini (veya işaretçileri) özelleştirmeden önce kullanıcı arayüzü özelleştirme seçeneklerini başlatmanız gerekir.
Kullanıcı arayüzü özelleştirme seçeneklerini başlatma
Kullanıcı arayüzü özelleştirme seçeneklerini ilk kez ayarlamak için kullanılan önerilen geri çağırma işlevi GMTCMapViewDelegate
içinde tanımlanır. mapViewDidInitialize
callback'i, GMTCMapView
nesnesi haritayı oluşturmaya hazır olduğunda tetiklenir.
Stil koordinatörü başlatıldı ancak kullanıcı arayüzü öğesi yok.
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.
}
Çoklu çizgileri özelleştirme
Poli çizgi özelleştirmesi GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
kullanılarak ayarlanır.
Aşağıdaki örnekte, çoklu çizgi stili seçeneklerinin nasıl ayarlanacağı gösterilmektedir:
Çoklu çizgi türleri
Aşağıdaki çoklu çizgi türlerini özelleştirebilirsiniz:
GMTCPolylineType.activeRoute
: Araç, yolcunun sonraki noktasına (alış veya teslimat) giderken izlediği rota.GMTCPolylineType.remainingRoute
: AraçGMTCPolylineType.activeRoute
'u tamamladıktan sonra kalan seyahat segmenti.
Bu türlerin her ikisi de ortak bir yolculuk boyunca gösterilir.
Çoklu çizgi özellikleri
Her bir çok çizgi için özelleştirebileceğiniz özellikler, Google Haritalar'da PolylineOptions
sağlanan özelliklerin bir alt kümesidir.
Tüketici SDK'sı GMTCPolylineStyleOptions
özelliklerinin özellikleri şunlardır:
- Bir başlatıcı kullanılarak oluşturulur.
- Herhangi bir mülk için özel değerler sağlamak istiyorsanız sabit veya değişken olabilir.
- Varsayılan değerlere sahip olmalıdır.
Aşağıdaki özellikleri özelleştirebilirsiniz:
color
width
isVisible
: Bir çoklu çizgiyi devre dışı bırakmak içinisVisible
değerinifalse
olarak ayarlayın.isTrafficEnabled
: Bu özellik varsayılan olarakfalse
olarak ayarlanmıştır.
Örnek
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];
}
Trafik bilincine sahip çoklu çizgiler
Poli çizginin trafik katmanı varsayılan olarak devre dışıdır. polylineStyleOptions.isTrafficEnabled = true
kullanarak etkinleştirdiğinizde, normal olmayan trafik bölümlerini temsil eden segmentler rota olarak çizilir.
Trafik koşulları dört hızdan biriyle gösterilir:
GMTSSpeedType.noData
GMTSSpeedType.normal
GMTSSpeedType.slow
GMTSSpeedType.trafficJam
setTrafficColorFor(_:color:)
kullanarak bu hız sınıflandırmalarının her birini temsil eden rengi özelleştirebilirsiniz.