自定义路线多段线

请选择平台: Android iOS JavaScript

您可以使用 ConsumerMapStyle.setPolylineStyleOptions 方法自定义路线多段线。如果设置自定义多段线 选项,它们会覆盖使用方 SDK 提供的默认值。

如需恢复默认值,请调用 setPolylineStyleOptions,并将 PolylineOptions 参数设为 null

如需检索活跃的 PolylineOptions,请使用 getPolylineStyleOptions 方法。

如需了解详情,请参阅 ConsumerMapStyle.setPolylineStyleOptions

路线多段线类型

您可以自定义以下路线多段线类型:

  • ACTIVE_ROUTE
  • REMAINING_ROUTE

ACTIVE_ROUTEREMAINING_ROUTE 在旅程分享期间显示,并且 表示车辆的路线。

路线多段线属性

Google 地图提供了可用于 PolylineOptions 中的每个多段线的可自定义属性。

  • 如需构建 PolylineOptions,请使用其构造函数。

  • 要指定自定义属性,请使用“Setter”style 方法。开始时间 方法会为每个属性提供默认值,您只需要 以指定任何自定义值。

  • 如需关闭多段线,请将 visible 设置为 false

有关详情,请参阅 PolylineOptions

示例

Java

// 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);

Kotlin

// 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)

当前路线和剩余路线

启用旅程分享后,您的应用可以自定义 使用多段线显示有效和剩余的 车辆的路线。

  • 有效路线是车辆目前行驶的路线,用于到达消费者有效行程中的下一个航点。

  • 剩余路线是指车辆仍需经过的路径 有效路由如果有效路线航点是最后一个行程航点, 那么剩余路由不存在

您可以在 。默认情况下,您可以看到有效路由,剩余路由 不可见。

示例

Java

// 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);

Kotlin

// 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)

路况感知多段线

默认情况下,多段线的路况图层处于停用状态。启用后 渲染程序在路线多段线上方绘制表示 非正常流量。其中包含取决于路况信息的偏移量。 如需了解详情,请参阅有关多段线的 Android 开发者文档。

Google 地图会将路况显示为 四种速度类型。 您可以为每种速度类型自定义颜色。

要启用路况感知型多段线,请构造一个 TrafficStyle 对象 然后通过调用 setPolylineTrafficStyle() 将其传递给 ConsumerMapStyle

示例

Java

// 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);

Kotlin

// 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)