Настройка пользовательского интерфейса Android

Класс ConsumerMapStyle имеет методы установки и получения, которые обеспечивают динамическую настройку маркеров и полилиний. Этот класс предоставляется асинхронно с помощью метода ConsumerController.getConsumerMapStyle() .

Настройка пользовательского интерфейса сохраняется при смене устройства и остается в силе до тех пор, пока ConsumerController не будет отсоединен.

Пользовательские маркеры

Метод установки типа маркера и его свойств — ConsumerMapStyle.setMarkerStyleOptions() . Параметры пользовательского маркера переопределяют значения по умолчанию, предоставленные Consumer SDK. Чтобы восстановить значения по умолчанию, вызовите setMarkerStyleOptions() используя значение null для параметра MarkerOptions . Получите активные MarkerOptions с помощью getMarkerStyleOptions() .

Типы маркеров

Для настройки доступны следующие маркеры:

  • TRIP_PICKUP_POINT
  • TRIP_DROPOFF_POINT
  • TRIP_INTERMEDIATE_DESTINATION
  • TRIP_VEHICLE

TRIP_PICKUP_POINT и TRIP_DROPOFF_POINT отображаются во время мониторинга поездки.

TRIP_VEHICLE отображается во время мониторинга поездки. Значок маркера не меняется в зависимости от фактического типа транспортного средства для поездки. Consumer SDK обновляет вращение значка TRIP_VEHICLE во время мониторинга поездки, чтобы имитировать поведение реального транспортного средства во время его движения по маршруту.

Параметры маркера

Настраиваемые свойства, доступные для каждого маркера, представляют собой набор свойств, предоставляемых Google Maps MarkerOptions .

MarkerOptions создается с использованием его конструктора, а настраиваемые свойства указываются с использованием методов стиля Setter. Для каждого свойства предусмотрены значения по умолчанию, поэтому вам нужно указать только собственные значения.

Вы можете отключить маркер, установив для visible значение false . Должно быть предоставлено достаточно данных, чтобы вы могли использовать вместо него собственный элемент пользовательского интерфейса.

Пример

Джава

// Initializing marker options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setMarkerStyleOptions(
              MarkerType.TRIP_VEHICLE,
              new MarkerOptions()
                  .visible(false));
        });

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null);

Котлин

// Initializing marker options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, MarkerOptions().visible(false))
  })

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null)

Пользовательские полилинии

Настройка полилинии задается с помощью метода ConsumerMapStyle.setPolylineStyleOptions . Установка параметров пользовательской полилинии переопределяет значения по умолчанию, предоставленные Consumer SDK. Значения по умолчанию можно восстановить, вызвав setPolylineStyleOptions с нулевым значением параметра PolylineOptions . Активные PolylineOptions можно получить с помощью метода getPolylineStyleOptions .

Типы полилиний

Для настройки доступны следующие типы полилиний:

  • ACTIVE_ROUTE
  • REMAINING_ROUTE

ACTIVE_ROUTE и REMAINING_ROUTE отображаются во время мониторинга поездки и представляют маршрут транспортного средства .

Свойства полилинии

Настраиваемые свойства, доступные для каждой полилинии, предоставляются Google Maps PolylineOptions . PolylineOptions создается с использованием его конструктора, а настроенные свойства задаются с помощью методов стиля Setter. Для каждого свойства предусмотрены значения по умолчанию, поэтому вам нужно указать только собственные значения. Вы можете отключить полилинию, установив для параметра visible значение false .

Пример

Джава

// Initializing polyline style options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .visible(false));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);

Котлин

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setPolylineStyleOptions(
      PolylineType.ACTIVE_ROUTE,
      PolylineOptions().visible(false)
    )
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

Активный и оставшийся маршрут

Если включена функция «Прогресс поездки и заказа», ваше приложение может настроить взаимодействие с пользователем с помощью полилиний, показывающих активный и оставшийся маршрут ваших транспортных средств.

Активный маршрут — это путь, по которому в данный момент движется транспортное средство, чтобы достичь следующей путевой точки в активной поездке потребителя. Оставшийся маршрут — это путь, по которому транспортное средство проедет мимо активного маршрута. Если активная путевая точка маршрута является последней путевой точкой поездки, оставшийся маршрут не существует.

Активные и оставшиеся полилинии можно настроить, а видимость контролировать с помощью вашего приложения. По умолчанию активный маршрут виден, а оставшийся маршрут не виден.

Пример

Джава

// Initializing polyline options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .color(Color.BLUE));
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.REMAINING_ROUTE,
              new PolylineOptions()
                  .color(Color.BLACK)
                  .width(5)
                  .visible(true));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null);

Котлин

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    {
      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.ACTIVE_ROUTE,
        PolylineOptions().color(Color.BLUE)
      )

      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.REMAINING_ROUTE,
        PolylineOptions().color(Color.BLACK).width(5).visible(true)
      )
    }
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null)

Полилинии с учетом трафика

По умолчанию слой трафика полилинии отключен. Когда эта опция включена, сегменты, представляющие участки необычного трафика, рисуются над ломаной линией маршрута по z-индексу PolylineOptions.getZIndex() плюс смещение в зависимости от условий трафика.

Условия дорожного движения представлены в виде одного из четырех типов скорости . Вы можете настроить цвет для каждого типа скорости.

Чтобы включить «полилинии с учетом трафика», необходимо создать объект TrafficStyle , который затем будет передан в ConsumerMapStyle путем вызова setPolylineTrafficStyle() .

Пример

Джава

// TrafficStyle is part of the Consumer SDK.
TrafficStyle trafficStyle = TrafficStyle.builder()
  .setTrafficVisibility(true)
  .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
  .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
  .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
  .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
  .build();

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle);

Котлин

// TrafficStyle is part of the Consumer SDK.
val trafficStyle =
  TrafficStyle.builder()
    .setTrafficVisibility(true)
    .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
    .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
    .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
    .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
    .build()

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle)

Настройка масштаба камеры, чтобы сосредоточиться на путешествии

Кнопка «Мое местоположение» по умолчанию, встроенная в Maps SDK, центрирует камеру по местоположению устройства. Если есть активный сеанс «Поездка и прогресс заказа», возможно, вы захотите отцентрировать камеру, чтобы сфокусироваться на путешествии, а не на местоположении устройства.

Потребительский SDK для встроенного решения Android: AutoCamera

Чтобы вы могли сосредоточиться на путешествии, а не на местоположении устройства, Consumer SDK предоставляет функцию AutoCamera, которая включена по умолчанию. Камера масштабируется, чтобы сфокусироваться на маршруте «Поездка и ход выполнения заказа» и следующей путевой точке поездки.

Настройка поведения камеры

Если вам требуется больший контроль над поведением камеры, вы можете отключить или включить AutoCamera с помощью ConsumerController.setAutoCameraEnabled() .

ConsumerController.getCameraUpdate() возвращает рекомендуемые границы камеры на данный момент. Затем вы можете предоставить этот CameraUpdate в качестве аргумента GoogleMap.moveCamera() или GoogleMap.animateCamera() .

,

Класс ConsumerMapStyle имеет методы установки и получения, которые обеспечивают динамическую настройку маркеров и полилиний. Этот класс предоставляется асинхронно с помощью метода ConsumerController.getConsumerMapStyle() .

Настройка пользовательского интерфейса сохраняется при смене устройства и остается в силе до тех пор, пока ConsumerController не будет отсоединен.

Пользовательские маркеры

Метод установки типа маркера и его свойств — ConsumerMapStyle.setMarkerStyleOptions() . Параметры пользовательского маркера переопределяют значения по умолчанию, предоставленные Consumer SDK. Чтобы восстановить значения по умолчанию, вызовите setMarkerStyleOptions() используя значение null для параметра MarkerOptions . Получите активные MarkerOptions с помощью getMarkerStyleOptions() .

Типы маркеров

Для настройки доступны следующие маркеры:

  • TRIP_PICKUP_POINT
  • TRIP_DROPOFF_POINT
  • TRIP_INTERMEDIATE_DESTINATION
  • TRIP_VEHICLE

TRIP_PICKUP_POINT и TRIP_DROPOFF_POINT отображаются во время мониторинга поездки.

TRIP_VEHICLE отображается во время мониторинга поездки. Значок маркера не меняется в зависимости от фактического типа транспортного средства для поездки. Consumer SDK обновляет вращение значка TRIP_VEHICLE во время мониторинга поездки, чтобы имитировать поведение реального транспортного средства во время его движения по маршруту.

Параметры маркера

Настраиваемые свойства, доступные для каждого маркера, представляют собой набор свойств, предоставляемых Google Maps MarkerOptions .

MarkerOptions создается с использованием его конструктора, а настраиваемые свойства указываются с использованием методов стиля Setter. Для каждого свойства предусмотрены значения по умолчанию, поэтому вам нужно указать только собственные значения.

Вы можете отключить маркер, установив для visible значение false . Должно быть предоставлено достаточно данных, чтобы вы могли использовать вместо него собственный элемент пользовательского интерфейса.

Пример

Джава

// Initializing marker options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setMarkerStyleOptions(
              MarkerType.TRIP_VEHICLE,
              new MarkerOptions()
                  .visible(false));
        });

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null);

Котлин

// Initializing marker options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, MarkerOptions().visible(false))
  })

// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null)

Пользовательские полилинии

Настройка полилинии задается с помощью метода ConsumerMapStyle.setPolylineStyleOptions . Установка параметров пользовательской полилинии переопределяет значения по умолчанию, предоставленные Consumer SDK. Значения по умолчанию можно восстановить, вызвав setPolylineStyleOptions с нулевым значением параметра PolylineOptions . Активные PolylineOptions можно получить с помощью метода getPolylineStyleOptions .

Типы полилиний

Для настройки доступны следующие типы полилиний:

  • ACTIVE_ROUTE
  • REMAINING_ROUTE

ACTIVE_ROUTE и REMAINING_ROUTE отображаются во время мониторинга поездки и представляют маршрут транспортного средства .

Свойства полилинии

Настраиваемые свойства, доступные для каждой полилинии, предоставляются Google Maps PolylineOptions . PolylineOptions создается с использованием его конструктора, а настроенные свойства задаются с помощью методов стиля Setter. Для каждого свойства предусмотрены значения по умолчанию, поэтому вам нужно указать только собственные значения. Вы можете отключить полилинию, установив для параметра visible значение false .

Пример

Джава

// Initializing polyline style options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .visible(false));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);

Котлин

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    consumerMapStyle.setPolylineStyleOptions(
      PolylineType.ACTIVE_ROUTE,
      PolylineOptions().visible(false)
    )
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

Активный и оставшийся маршрут

Если включена функция «Прогресс поездки и заказа», ваше приложение может настроить взаимодействие с пользователем с помощью полилиний, показывающих активный и оставшийся маршрут ваших транспортных средств.

Активный маршрут — это путь, по которому в данный момент движется транспортное средство, чтобы достичь следующей путевой точки в активной поездке потребителя. Оставшийся маршрут — это путь, по которому транспортное средство проедет мимо активного маршрута. Если активная путевая точка маршрута является последней путевой точкой поездки, оставшийся маршрут не существует.

Активные и оставшиеся полилинии можно настроить, а видимость контролировать с помощью вашего приложения. По умолчанию активный маршрут виден, а оставшийся маршрут не виден.

Пример

Джава

// Initializing polyline options.
consumerController
    .getConsumerMapStyle()
    .addOnSuccessListener(
        consumerMapStyle -> {
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.ACTIVE_ROUTE,
              new PolylineOptions()
                  .color(Color.BLUE));
          consumerMapStyle.setPolylineStyleOptions(
              PolylineType.REMAINING_ROUTE,
              new PolylineOptions()
                  .color(Color.BLACK)
                  .width(5)
                  .visible(true));
        });

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null);

Котлин

// Initializing polyline options.
consumerController
  .getConsumerMapStyle()
  .addOnSuccessListener({ consumerMapStyle ->
    {
      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.ACTIVE_ROUTE,
        PolylineOptions().color(Color.BLUE)
      )

      consumerMapStyle.setPolylineStyleOptions(
        PolylineType.REMAINING_ROUTE,
        PolylineOptions().color(Color.BLACK).width(5).visible(true)
      )
    }
  })

// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)

consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null)

Полилинии с учетом трафика

По умолчанию слой трафика полилинии отключен. Когда эта опция включена, сегменты, представляющие участки необычного трафика, рисуются над ломаной линией маршрута по z-индексу PolylineOptions.getZIndex() плюс смещение в зависимости от условий трафика.

Условия дорожного движения представлены в виде одного из четырех типов скорости . Вы можете настроить цвет для каждого типа скорости.

Чтобы включить «полилинии с учетом трафика», необходимо создать объект TrafficStyle , который затем будет передан в ConsumerMapStyle путем вызова setPolylineTrafficStyle() .

Пример

Джава

// TrafficStyle is part of the Consumer SDK.
TrafficStyle trafficStyle = TrafficStyle.builder()
  .setTrafficVisibility(true)
  .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
  .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
  .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
  .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
  .build();

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle);

Котлин

// TrafficStyle is part of the Consumer SDK.
val trafficStyle =
  TrafficStyle.builder()
    .setTrafficVisibility(true)
    .setTrafficColor(SpeedType.NO_DATA, Color.GREY)
    .setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
    .setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
    .setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
    .build()

consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle)

Настройка масштаба камеры, чтобы сосредоточиться на путешествии

Кнопка «Мое местоположение» по умолчанию, встроенная в Maps SDK, центрирует камеру по местоположению устройства. Если есть активный сеанс «Поездка и прогресс заказа», возможно, вы захотите отцентрировать камеру, чтобы сфокусироваться на путешествии, а не на местоположении устройства.

Потребительский SDK для встроенного решения Android: AutoCamera

Чтобы вы могли сосредоточиться на путешествии, а не на местоположении устройства, Consumer SDK предоставляет функцию AutoCamera, которая включена по умолчанию. Камера масштабируется, чтобы сфокусироваться на маршруте «Поездка и ход выполнения заказа» и следующей путевой точке поездки.

Настройка поведения камеры

Если вам требуется больший контроль над поведением камеры, вы можете отключить или включить AutoCamera с помощью ConsumerController.setAutoCameraEnabled() .

ConsumerController.getCameraUpdate() возвращает рекомендуемые границы камеры на данный момент. Затем вы можете предоставить этот CameraUpdate в качестве аргумента GoogleMap.moveCamera() или GoogleMap.animateCamera() .