Class DirectionFinder

方向Finder

可讓您擷取不同地點之間的路線。
以下範例說明如何使用這個類別取得從市政府到中央公園的路線,並先在林肯中心停留,在地圖上標示位置和路線,然後透過電子郵件傳送地圖。

// Get the directions.
const directions = Maps.newDirectionFinder()
                       .setOrigin('Times Square, New York, NY')
                       .addWaypoint('Lincoln Center, New York, NY')
                       .setDestination('Central Park, New York, NY')
                       .setMode(Maps.DirectionFinder.Mode.DRIVING)
                       .getDirections();
const route = directions.routes[0];

// Set up marker styles.

let markerLetterCode = 'A'.charCodeAt();

// Add markers to the map.
const map = Maps.newStaticMap();
for (let i = 0; i < route.legs.length; i++) {
  const leg = route.legs[i];
  if (i === 0) {
    // Add a marker for the start location of the first leg only.
    map.setMarkerStyle(
        Maps.StaticMap.MarkerSize.MID,
        Maps.StaticMap.Color.GREEN,
        String.fromCharCode(markerLetterCode),
    );
    map.addMarker(leg.start_location.lat, leg.start_location.lng);
    markerLetterCode++;
  }
  map.setMarkerStyle(
      Maps.StaticMap.MarkerSize.MID,
      Maps.StaticMap.Color.GREEN,
      String.fromCharCode(markerLetterCode),
  );
  map.addMarker(leg.end_location.lat, leg.end_location.lng);
  markerLetterCode++;
}

// Add a path for the entire route.
map.addPath(route.overview_polyline.points);

// Send the map in an email.
const toAddress = Session.getActiveUser().getEmail();
MailApp.sendEmail(
    toAddress,
    'Directions',
    `Please open: ${map.getMapUrl()}&key=YOUR_API_KEY`,
    {
      htmlBody: 'See below.<br/><img src="cid:mapImage">',
      inlineImages: {
        mapImage: Utilities.newBlob(map.getMapImage(), 'image/png'),
      },
    },
);

另請參閱

方法

方法傳回類型簡短說明
addWaypoint(latitude, longitude)DirectionFinder使用點 (緯/經) 新增路線必須經過的路線點。
addWaypoint(address)DirectionFinder使用地址新增路線必須經過的路線點。
clearWaypoints()DirectionFinder清除目前的路標組合。
getDirections()Object使用已設定的起點、目的地和其他選項,取得路線。
setAlternatives(useAlternatives)DirectionFinder設定是否應傳回替代路線,而非僅傳回最高排名的路線 (預設為 false)。
setArrive(time)DirectionFinder設定所需的到達時間 (如適用)。
setAvoid(avoid)DirectionFinder設定是否要避免特定類型的限制。
setDepart(time)DirectionFinder設定所需的出發時間 (如適用)。
setDestination(latitude, longitude)DirectionFinder使用點 (緯度/經度) 設定要計算路線的終點位置。
setDestination(address)DirectionFinder使用地址設定要計算路線的終點位置。
setLanguage(language)DirectionFinder設定路線指示的語言。
setMode(mode)DirectionFinder設定交通方式 (預設為駕車)。
setOptimizeWaypoints(optimizeOrder)DirectionFinder設定是否要透過更有效率的順序調整路線控點,以便最佳化提供的路線 (預設為 false)。
setOrigin(latitude, longitude)DirectionFinder使用點 (緯度/經度) 設定起始位置,以便計算路線。
setOrigin(address)DirectionFinder使用地址設定起點,以便計算路線。
setRegion(region)DirectionFinder設定解讀地點名稱時要使用的區域。

內容詳盡的說明文件

addWaypoint(latitude, longitude)

使用點 (緯/經) 新增路線必須經過的路線點。

// Creates a DirectionFinder with a wapoint at Lincoln Center.
const directionFinder = Maps.newDirectionFinder().addWaypoint(
    40.772628,
    -73.984243,
);

參數

名稱類型說明
latitudeNumber航點的緯度。
longitudeNumber航路點的經度。

回攻員

DirectionFinder:DirectionFinder 物件,可協助鏈結呼叫。


addWaypoint(address)

使用地址新增路線必須經過的路線點。

// Creates a DirectionFinder with a wapoint at Lincoln Center.
const directionFinder = Maps.newDirectionFinder().addWaypoint(
    'Lincoln Center, New York, NY',
);

參數

名稱類型說明
addressString地址。

回攻員

DirectionFinder:DirectionFinder 物件,可協助鏈結呼叫。


clearWaypoints()

清除目前的路標組合。

const directionFinder = Maps.newDirectionFinder();
// ...
// Do something interesting here ...
// ...
// Remove all waypoints added with addWaypoint().
directionFinder.clearWaypoints();

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件


getDirections()

使用已設定的起點、目的地和其他選項,取得路線。

// Logs how long it would take to walk from Times Square to Central Park.
const directions = Maps.newDirectionFinder()
                       .setOrigin('Times Square, New York, NY')
                       .setDestination('Central Park, New York, NY')
                       .setMode(Maps.DirectionFinder.Mode.WALKING)
                       .getDirections();
Logger.log(directions.routes[0].legs[0].duration.text);

回攻員

Object:包含路線指示的路線集合的 JSON 物件,如這裡所述

另請參閱


setAlternatives(useAlternatives)

設定是否應傳回替代路線,而非僅傳回排名最高的路線 (預設為 false)。如果為 true,產生的物件 routes 陣列可能會包含多個項目。

// Creates a DirectionFinder with alternative routes enabled.
const directionFinder = Maps.newDirectionFinder().setAlternatives(true);

參數

名稱類型說明
useAlternativesBoolean傳回替代路線為 true,否則為 false

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件


setArrive(time)

設定所需的到達時間 (如適用)。

// Creates a DirectionFinder with an arrival time of 2 hours from now.
const now = new Date();
const arrive = new Date(now.getTime() + 2 * 60 * 60 * 1000);
const directionFinder = Maps.newDirectionFinder().setArrive(arrive);

參數

名稱類型說明
timeDate抵達時間

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱


setAvoid(avoid)

設定是否要避免特定類型的限制。

// Creates a DirectionFinder that avoid highways.
const directionFinder = Maps.newDirectionFinder().setAvoid(
    Maps.DirectionFinder.Avoid.HIGHWAYS,
);

參數

名稱類型說明
avoidStringAvoid 中的常數值

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱


setDepart(time)

設定所需的出發時間 (如適用)。

// Creates a DirectionFinder with a departure time of 1 hour from now.
const now = new Date();
const depart = new Date(now.getTime() + 1 * 60 * 60 * 1000);
const directionFinder = Maps.newDirectionFinder().setDepart(depart);

參數

名稱類型說明
timeDate出發時間

回攻員

DirectionFinder:DirectionFinder 物件,可協助鏈結呼叫。

另請參閱


setDestination(latitude, longitude)

使用點 (緯度/經度) 設定要計算路線的終點位置。

// Creates a DirectionFinder with the destination set to Central Park.
const directionFinder = Maps.newDirectionFinder().setDestination(
    40.777052,
    -73.975464,
);

參數

名稱類型說明
latitudeNumber終點位置的緯度
longitudeNumber結束地點的經度

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件


setDestination(address)

使用地址設定要計算路線的終點位置。

// Creates a DirectionFinder with the destination set to Central Park.
const directionFinder = Maps.newDirectionFinder().setDestination(
    'Central Park, New York, NY',
);

參數

名稱類型說明
addressString結束位址

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件


setLanguage(language)

設定路線指示的語言。

// Creates a DirectionFinder with the language set to French.
const directionFinder = Maps.newDirectionFinder().setLanguage('fr');

參數

名稱類型說明
languageStringBCP-47 語言 ID

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱


setMode(mode)

設定交通方式 (預設為駕車)。

// Creates a DirectionFinder with the mode set to walking.
const directionFinder = Maps.newDirectionFinder().setMode(
    Maps.DirectionFinder.Mode.WALKING,
);

參數

名稱類型說明
modeStringMode 中的常數值

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱


setOptimizeWaypoints(optimizeOrder)

設定是否要透過更有效率的順序調整路線控點,以便最佳化提供的路線 (預設為 false)。

// Creates a DirectionFinder with wapoint optimization enabled.
const directionFinder = Maps.newDirectionFinder().setOptimizeWaypoints(true);

參數

名稱類型說明
optimizeOrderBoolean為 true 時會最佳化訂單,否則為 false

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱


setOrigin(latitude, longitude)

使用點 (緯度/經度) 設定起始位置,以便計算路線。

// Creates a DirectionFinder with the origin set to Times Square.
const directionFinder = Maps.newDirectionFinder().setOrigin(
    40.759011,
    -73.984472,
);

參數

名稱類型說明
latitudeNumber出發地點的緯度
longitudeNumber出發地點的經度

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件


setOrigin(address)

使用地址設定起點,以便計算路線。

// Creates a DirectionFinder with the origin set to Times Square.
const directionFinder = Maps.newDirectionFinder().setOrigin(
    'Times Square, New York, NY',
);

參數

名稱類型說明
addressString起始地址

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 例項


setRegion(region)

設定解讀地點名稱時要使用的區域。支援的區域代碼對應至 Google 地圖支援的 ccTLD。舉例來說,區域代碼「uk」對應「maps.google.co.uk」。

// Creates a DirectionFinder with the region set to France.
const directionFinder = Maps.newDirectionFinder().setRegion('fr');

參數

名稱類型說明
regionString要使用的區域代碼

回攻員

DirectionFinder:方便鏈結呼叫的 DirectionFinder 物件

另請參閱