Прежде чем настраивать полилинии маршрута (или маркеры), необходимо сначала инициализировать параметры настройки пользовательского интерфейса.
Инициализация параметров настройки пользовательского интерфейса
Рекомендуемая функция обратного вызова, используемая для первоначальной установки параметров настройки пользовательского интерфейса, объявляется в GMTCMapViewDelegate . Функция обратного вызова mapViewDidInitialize срабатывает, когда объект GMTCMapView готов к отрисовке карты. Координатор стилей инициализирован, но элементы пользовательского интерфейса отсутствуют.
Быстрый
/** 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 Maps PolylineOptions . Свойства GMTCPolylineStyleOptions из Consumer SDK имеют следующие характеристики:
- Создано с использованием инициализатора.
- Может быть неизменяемым или изменяемым, если вы хотите указать пользовательские значения для какого-либо свойства.
- Имеются значения по умолчанию.
Вы можете настроить следующие параметры:
-
color -
width -
isVisible: Чтобы отключить полилинию, установитеisVisibleвfalse. -
isTrafficEnabled: По умолчанию это свойство имеет значениеfalse.
Пример
Быстрый
/** 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:) .