自訂新增至地圖標記的外觀和風格。您可以透過兩種方式自訂地圖中新增的標記外觀和風格:
根據類型設定標記:指定
MarkerOptions
物件,設定相同類型的標記樣式。系統會在建立每個標記後套用您指定的變更,覆寫任何預設選項。如需範例,請參閱本指南的「使用MarkerOptions
變更標記樣式」一節。根據資料設定標記樣式:指定自訂函式,以便根據資料設定標記樣式。您可以根據分享歷程的資料或來自外部來源的資料設定樣式:
行程分享資料:行程分享會將標記資料傳遞至自訂化函式,包括標記代表的物件類型:車輛、起點、路線點或目的地。接著,標記樣式會根據標記元素的目前狀態變更。例如車輛完成行程之前剩餘的路線控點數量。
外部來源:您可以將行程分享資料與 Fleet Engine 以外來源的資料結合,並根據這些資訊設定標記樣式。
如需範例,請參閱本指南的「使用自訂函式變更標記樣式」一節。
為標記新增點擊處理機制:如需範例,請參閱「新增點擊處理機制」。
標記自訂選項
這兩個選項都會在 Google Maps JavaScript API 的 FleetEngineTripLocationProviderOptions
中使用下列自訂參數:
vehicleMarkerCustomization
originMarkerCustomization
waypointMarkerCustomization
destinationMarkerCustomization
使用 MarkerOptions
變更標記的樣式
下例說明如何使用 MarkerOptions
物件設定車輛標記樣式。您可以按照這個模式,使用「標記自訂選項」中列出的任何標記自訂項目,自訂任何標記的樣式。
JavaScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
TypeScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
使用自訂函式變更標記樣式
以下範例說明如何使用自訂函式設定車輛標記樣式。您可以按照這個模式,使用「標記自訂選項」中列出的任何標記自訂參數,自訂任何標記的樣式。
JavaScript
vehicleMarkerCustomization =
(params) => {
var distance = params.trip.remainingWaypoints.length;
params.marker.setLabel(`${distance}`);
};
TypeScript
vehicleMarkerCustomization =
(params: TripMarkerCustomizationFunctionParams) => {
const distance = params.trip.remainingWaypoints.length;
params.marker.setLabel(`${distance}`);
};
為標記新增點擊處理
以下範例說明如何在車輛標記中新增點擊處理方式。請按照這個模式,使用「標記自訂選項」中列出的任何標記自訂參數,為任何標記新增點擊處理。
JavaScript
vehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};
TypeScript
vehicleMarkerCustomization =
(params: TripMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};