設定地圖樣式

本文說明如何自訂地圖的外觀和風格,以及控管資料顯示設定和檢視區塊選項。您可以選擇下列其中一種操作方式:

  • 使用雲端式地圖樣式設定
  • 直接在自己的程式碼中設定地圖樣式選項

使用雲端式地圖樣式設定為地圖設定樣式

如要將地圖樣式套用至 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 個停靠站。
預計抵達時間 顯示 剩餘行車距離短於 5000 公尺。
剩餘停靠次數 永不顯示 車輛距離你不到 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 剩餘行車距離至少為 3000 公尺時,才會顯示車輛位置。

停用自動調整功能

如要停止讓地圖自動調整可視區域,以配合車輛和預期路線,請停用自動調整功能。以下範例說明如何設定行程分享地圖檢視畫面時,停用自動調整功能。

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,
  ...
});

後續步驟