本文档介绍了如何自定义地图的外观和风格,以及如何控制数据公开范围和视口选项。为此,您可以执行以下操作:
- 使用云端地图样式设置
- 直接在您自己的代码中设置地图样式选项
使用云端地图样式设置功能设置地图样式
如需将地图样式应用于 JavaScript 消费者行程分享地图,请在创建 JourneySharingMapView 时指定 mapId 和任何其他 mapOptions。
以下示例展示了如何使用地图 ID 应用地图样式。
JavaScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
mapId: 'YOUR_MAP_ID'
}
// Any other styling options.
});
TypeScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
mapId: 'YOUR_MAP_ID'
}
// Any other styling options.
});
直接在您自己的代码中设置地图样式
您还可以在创建 JourneySharingMapView 时通过设置地图选项来自定义地图样式。以下示例展示了如何使用地图选项设置地图样式。如需详细了解您可以设置哪些地图选项,请参阅 Google Maps JavaScript API 参考文档中的 mapOptions。
JavaScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
styles: [
{
"featureType": "road.arterial",
"elementType": "geometry",
"stylers": [
{ "color": "#CCFFFF" }
]
}
]
}
});
TypeScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
styles: [
{
"featureType": "road.arterial",
"elementType": "geometry",
"stylers": [
{ "color": "#CCFFFF" }
]
}
]
}
});
控制任务数据对 SDK 的可见性
您可以使用可见性规则控制地图上某些任务对象的可见性。
任务数据默认公开范围
默认情况下,当车辆距离任务地点不超过 5 个停靠点时,系统会显示分配给该车辆的任务的数据。当任务完成或取消时,可见性结束。
下表显示了每种类型任务的默认公开范围。您可以自定义许多任务的公开范围,但并非所有任务都支持此功能。如需详细了解任务类型,请参阅计划任务指南中的任务类型。
| 任务类型 | 默认的公开范围 | 是否可自定义? | 说明 |
|---|---|---|---|
| 不可用任务 | 不显示 | 否 | 用于司机休息和加油。如果送货任务的路线还包含另一个车辆停靠点,并且该停靠点仅包含不可用任务,则不会显示该停靠点。系统仍会显示配送任务本身的预计到达时间和预计任务完成时间。 |
| 打开车辆任务 | 可见 | 是 | 任务完成或取消后,可见性即会结束。 您可以自定义未完成车辆任务的公开范围。请参阅自定义未完成车辆任务的公开范围。 |
| 已关闭的车辆任务 | 不显示 | 否 | 您无法自定义已关闭的车辆任务的公开范围。 |
自定义未完成车辆任务的公开范围
TaskTrackingInfo 接口提供了许多任务数据元素,这些元素可以通过 Consumer SDK 显示。
| 可自定义的任务数据元素 | |
|---|---|
|
路线多段线 预计到达时间 预计任务完成时间 |
到任务地点的剩余驾车距离 剩余经停次数 车辆位置 |
每项任务的公开范围选项
您可以在 Fleet Engine 中创建或更新任务时设置 TaskTrackingViewConfig,从而针对每项任务自定义公开范围配置。使用以下可见性选项创建条件,以确定任务元素的可见性:
| 公开范围选项 | ||
|---|---|---|
|
剩余经停次数 距离预计到达时间还有多久 剩余行驶距离 |
始终显示 永不可见 |
|
为便于说明,假设有一个自定义示例,它使用下表所示的条件调整三个数据元素的公开范围。所有其他元素都遵循默认的可见性规则。
| 要调整的数据元素 | 公开范围 | 标准 |
|---|---|---|
| 路线多段线 | 显示 | 车辆距离您还有 3 站。 |
| 预计到达时间 | 显示 | 剩余行驶距离小于 5,000 米。 |
| 剩余经停次数 | 永不显示 | 车辆距离您还有 3 站。 |
以下示例展示了此配置:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"estimatedArrivalTimeVisibility": {
"remainingDrivingDistanceMetersThreshold": 5000
},
"remainingStopCountVisibility": {
"never": true
}
}
路线多段线和车辆位置信息公开范围规则
除非车辆位置也可见,否则路线多段线不可见;否则,可以通过多段线的末端推断车辆位置。
这些准则可帮助您为路线多段线和车辆位置信息公开范围选项提供有效的组合。
| 相同的公开范围选项 | 可见性标准 | 指南 |
|---|---|---|
| 路线多段线选项设置为始终可见。 | 将车辆位置设置为始终可见。 | |
| 车辆位置信息已设为“永不显示”。 | 将路线多段线设置为永不显示。 | |
公开范围选项为以下任一项:
|
将路线多段线选项设置为小于或等于为车辆位置设置的值。例如: "taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
|
|
| 不同的公开范围选项 | 可见性条件 | 指南 |
| 车辆位置信息可见 | 只有在同时满足车辆位置和多段线可见性选项时,才会发生这种情况。例如: "taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}在此示例中,只有在剩余经停点数量至少为 3 且剩余行驶距离至少为 3, 000 米时,车辆位置才可见。 |
停用自动调整
您可以停用自动调整功能,阻止地图自动调整视口以适应车辆和预期路线。以下示例展示了如何在配置行程分享地图视图时停用自动调整。
JavaScript
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
automaticViewportMode:
google.maps.journeySharing
.AutomaticViewportMode.NONE,
...
});
TypeScript
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
automaticViewportMode:
google.maps.journeySharing
.AutomaticViewportMode.NONE,
...
});