自定义路线多段线

请选择平台: Android iOS JavaScript

本文档介绍了如何为面向消费者的基于 Web 的行程跟踪应用中使用的地图自定义路线多段线。

借助 Consumer SDK,您可以控制路线多段线的可见性,或为地图上的行程路线多段线设置样式。SDK 会为行程的有效路径或剩余路径中的每对坐标创建一个 google.maps.Polyline 对象。然后,该库会在以下两种情况下应用这些自定义设置:

  • 然后再将对象添加到地图中
  • 当对象所用的数据发生更改时

设置路线多段线的样式

与设置标记样式类似,您可以使用自定义参数设置路线多段线的样式。然后,您可以使用以下方法之一配置样式:

  • 最简单:使用 PolylineOptions 可在创建或更新所有匹配的 Polyline 对象时应用。
  • 高级:指定自定义函数。自定义函数允许根据 Fleet Engine 发送的数据对对象进行个体样式设置。该函数可以根据行程的当前状态更改每个对象的样式;例如,当车辆行驶速度较慢时,将 Polyline 对象着色为更深的阴影,或使其更粗。您甚至可以与 Fleet Engine 外部的数据源进行联接,并根据这些信息设置 Polyline 对象的样式。

自定义参数

设置路线多段线的样式时,您可以使用 FleetEngineTripLocationProviderOptions 中提供的参数。这些参数针对车辆行程中的不同路径状态提供,如下所示:

使用 PolylineOptions

以下示例展示了如何使用 PolylineOptions 为 Polyline 对象配置样式。按照此模式,使用前面列出的任何多段线自定义设置来自定义任何 Polyline 对象的样式。

JavaScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

TypeScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

使用自定义函数设置路线多段线的样式

以下示例展示了如何为活跃路线多段线配置样式。按照此模式,您可以使用前面列出的任何路线多段线自定义参数来自定义任何 Polyline 对象的样式。

JavaScript

// Color the route polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params) => {
    const distance = params.trip.remainingWaypoints[0].distanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

TypeScript

// Color the route Polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params: TripPolylineCustomizationFunctionParams) => {
    const distance = params.trip.remainingWaypoints[0].distanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

控制路线多段线的可见性

默认情况下,所有 Polyline 对象都是可见的。如需使 Polyline 对象不可见,请设置其 visible 属性:

JavaScript

remainingPolylineCustomization = {visible: false};

TypeScript

remainingPolylineCustomization = {visible: false};