Перед настройкой полилиний маршрута (или маркеров) необходимо сначала инициализировать параметры настройки пользовательского интерфейса.
Инициализация параметров настройки пользовательского интерфейса
Рекомендуемый обратный вызов, используемый для первоначальной настройки параметров настройки пользовательского интерфейса, объявлен в 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
. Свойства Consumer SDK GMTCPolylineStyleOptions
обладают следующими характеристиками:
- Создано с использованием инициализатора.
- Может быть неизменяемым или изменяемым, если вы хотите указать пользовательские значения для любого свойства.
- Имеют значения по умолчанию.
Вы можете настроить следующие свойства:
-
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:)
.