啟動 Windows 地圖應用程式

了解如何從您的應用程式啟動 Windows 地圖應用程式。 本主題介紹 bingmaps:ms-drive-to:ms-walk-to:ms-settings: 統一資源識別碼 (URI) 方案。 使用這些 URI 方案啟動 Windows 地圖應用程式以取得特定地圖、方向和搜尋結果,或從「設定」應用程式下載 Windows 地圖離線地圖。

提示要了解有關從應用程式啟動 Windows 地圖應用程式的更多信息,請從 GitHub 上的 Windows-universal-samples 儲存庫下載通用 Windows 平台 (UWP) 地圖範例

URI 簡介

URI 方案可讓您透過點擊超連結 (或在應用程式中以程式設計方式) 開啟應用程式。 就像您可以使用 mailto: 開始一封新電子郵件或使用 http: 開啟 Web 瀏覽器一樣,您可以使用 bingmaps:ms-drive-to:ms-walk-to: 開啟 Windows 地圖應用程式。

  • bingmaps: URI 提供位置、搜尋結果、路線和流量的地圖。
  • ms-drive-to: URI 提供您目前位置的轉彎方向。
  • ms-walk-to: URI 提供您目前位置的轉彎方向。

例如,下列 URI 會開啟 Windows 地圖應用程式,並顯示以紐約市為中心的地圖。

<bingmaps:?cp=40.726966~-74.006076>

a map centered over new york city.

以下是 URI 設定的描述:

bingmaps:?query

在這裡 URI 設定中,查詢是一系列的參數名稱/值群組:

¶m1=value1¶m2=value2 …

如需可用參數的完整清單,請參閱 bingmaps:ms-drive-to:ms-walk-to: 參數參考。 本主題稍後也有範例。

從您的應用程式啟動 URI

若要從您的應用程式啟動 Windows 地圖應用程式,請使用 bingmaps:ms-drive-to:ms-walk-to: 呼叫 LaunchUriAsync 方法。 下列範例會從上一個範例啟動相同的 URI。 如需透過 URI 啟動應用程式的詳細資訊,請參閱啟動 URI 的預設應用程式

// Center on New York City
var uriNewYork = new Uri(@"bingmaps:?cp=40.726966~-74.006076");

// Launch the Windows Maps app
var launcherOptions = new Windows.System.LauncherOptions();
launcherOptions.TargetApplicationPackageFamilyName = "Microsoft.WindowsMaps_8wekyb3d8bbwe";
var success = await Windows.System.Launcher.LaunchUriAsync(uriNewYork, launcherOptions);

在此範例中 LauncherOptions 類別可用來協助確保啟動 Windows 地圖應用程式。

顯示已知位置

有許多選項可以控制要顯示之地圖的哪個部分。 您可以將 cp (中心點) 參數與 rad (半徑) 或 lvl (縮放等級) 參數一起使用來顯示位置並選擇放大到該位置的接近程度。 當您使用 cp 參數時,您也可以指定 hdg (航向) 和 pit (俯仰) 來控制檢視方向。 另一種方法是使用 bb (周框方塊) 參數來提供您想要顯示區域的最大南、東、北和西座標。

若要控制視圖類型,請使用 sty (樣式) 和 ss (街邊) 參數。 sty 參數可讓您在道路和空中檢視之間切換。 ss 參數會將地圖放入 Streetside 檢視中。 如需這些和其他參數的詳細資訊,請參閱 bingmaps: 參數參考

範例 URI 結果
bingmaps:? 開啟地圖應用程式。
bingmaps:?cp=40.726966~-74.006076 顯示以紐約市為中心的地圖。
bingmaps:?cp=40.726966~-74.006076&lvl=10 顯示以紐約市為中心且縮放比例為 10 的地圖。
bingmaps:?bb=39.719_-74.52~41.71_-73.5 顯示紐約市的地圖,這是 bb 自變數中指定的區域。
bingmaps:?bb=39.719_-74.52~41.71_-73.5&cp=47~-122 顯示紐約市的地圖,即邊界框參數中指定的區域。 由於指定了 bb,因此將忽略 cp 參數中指定的西雅圖中心點。
bingmaps:?collection=point.36.116584_-115.176753_Caesars%20Palace&lvl=16 以名為凱撒宮 (在拉斯維加斯) 的點顯示地圖,並將縮放層級設定為 16。
bingmaps:?collection=point.40.726966_-74.006076_Some%255FBusiness 顯示具有名為 Some_Business (在拉斯維加斯) 點的地圖。
bingmaps:?cp=40.726966~-74.006076&trfc=1&sty=a 顯示紐約市地圖與空中地圖樣式的交通。
bingmaps:?cp=47.6204~-122.3491&sty=3d 顯示空間針頭的 3D 檢視。
bingmaps:?cp=47.6204~-122.3491&sty=3d&rad=200&pit=75&hdg=165 顯示空間針頭的 3D 檢視,半徑為 200 公尺、音調為 75 度,標題為 165 度。
bingmaps:?cp=47.6204~-122.3491&ss=1 顯示太空針頭的街邊檢視。

顯示搜尋結果

使用 q 參數搜尋地點時,我們建議使術語盡可能具體,並使用 cpbbwhere 參數指定搜尋位置。 如果您未指定搜尋位置,且使用者目前的位置無法使用,搜尋可能不會傳回有意義的結果。 搜尋結果會顯示在最適當的地圖檢視檢視中。 如需這些和其他參數的詳細資訊,請參閱 bingmaps: 參數參考

範例 URI 結果
bingmaps:?q=1600%20Pennsylvania%20Ave,%20Washington,%20DC 顯示地圖,並搜尋華盛頓特區白宮的位址。
bingmaps:?q=coffee&where=Seattle 在西雅圖搜尋咖啡。
bingmaps:?cp=40.726966~-74.006076&where=New%20York 搜尋指定中心點附近的紐約。
bingmaps:?bb=39.719_-74.52~41.71_-73.5&q=pizza 在指定的周框方塊中搜尋披薩 (也就是紐約市)。

 

顯示多個點

使用集合參數在地圖上顯示一組自定義的點。 如果有一個以上的點,則會顯示點清單。 集合中最多可以有 25 點,且會依提供的順序列出。 集合的優先順序高於搜尋和方向要求。 如需這些和其他參數的詳細資訊,請參閱 bingmaps: 參數參考

範例 URI 結果
bingmaps:?collection=point.36.116584_-115.176753_Caesars%20Palace 搜尋拉斯維加斯的凱撒宮,並以最佳地圖檢視在地圖上顯示結果。
bingmaps:?collection=point.36.116584_-115.176753_Caesars%20Palace&lvl=16 在拉斯維加斯顯示名為凱撒宮的圖釘,並縮放至層級 16。
bingmaps:?collection=point.36.116584_-115.176753_Caesars%20Palace~point.36.113126_-115.175188_The%20Bellagio&lvl=16&cp=36.114902~-115.176669 顯示一個名為凱撒宮的圖釘和拉斯維加斯名為百樂宮的圖釘,並縮放至層級 16。
bingmaps:?collection=point.40.726966_-74.006076_Fake%255FBusiness%255Fwith%255FUnderscore 以名為 Fake_Business_with_Underscore 的圖釘顯示紐約。
bingmaps:?collection=name.Hotel%20List~point.36.116584_-115.176753_Caesars%20Palace~point.36.113126_-115.175188_The%20Bellagio&lvl=16&cp=36.114902~-115.176669 顯示名為 Hotel List 的清單,以及凱撒宮和拉斯維加斯的百樂宮的兩個圖釘,並縮放至層級 16。

 

顯示方向和流量

您可以使用 rtp 參數顯示兩個點之間的方向;這些點可以是位址或緯度和經度座標。 使用 trfc 參數來顯示流量資訊。 若要指定方向的類型:駕駛、步行或交通,請使用模式參數。 如果未指定模式,則會使用使用者慣用的交通模式來提供指示。 如需這些和其他參數的詳細資訊,請參閱 bingmaps: 參數參考

an example of directions

範例 URI 結果
bingmaps:?rtp=pos.44.9160_-110.4158~pos.45.0475_-109.4187 顯示具有點對點方向的地圖。 由於未指定模式,因此會使用使用者的運輸喜好設定模式來提供指示。
bingmaps:?cp=43.0332~-87.9167&trfc=1 顯示以威斯康辛州密爾瓦基為中心的地圖以及交通狀況。
bingmaps:?rtp=adr.One Microsoft Way, Redmond, WA 98052~pos.39.0731_-108.7238 顯示從指定位址到指定位置方向的地圖。
bingmaps:?rtp=adr.1%20Microsoft%20Way,%20Redmond,%20WA,%2098052~pos.36.1223_-111.9495_Grand%20Canyon%20northern%20rim 顯示從 1 Microsoft Way, Redmond, WA, 98052 到 Grand Canyon 北緣的路線。
bingmaps:?rtp=adr.Davenport, CA~adr.Yosemite Village 顯示地圖,其中包含從指定位置到指定地標的行車路線。
bingmaps:?rtp=adr.Mountain%20View,%20CA~adr.San%20Francisco%20International%20Airport,%20CA&mode=d 顯示從加州山景城到加州舊金山國際機場的行車路線。
bingmaps:?rtp=adr.Mountain%20View,%20CA~adr.San%20Francisco%20International%20Airport,%20CA&mode=w 顯示從加州山景城到加州舊金山國際機場的步行路線。
bingmaps:?rtp=adr.Mountain%20View,%20CA~adr.San%20Francisco%20International%20Airport,%20CA&mode=t 顯示從加州山景城到加州舊金山國際機場的公車路線。

顯示路線規劃路線

ms-drive-to:ms-walk-to: URI 配置可讓您直接啟動為路由的回合檢視。 這些 URI 配置只能提供使用者目前位置的指示。 如果您必須在不包含使用者目前位置的點之間提供指示,請使用 bingmaps: URI 配置,如上一節所述。 如需這些 URI 配置的詳細資訊,請參閱 ms-drive-to:ms-walk-to: 參數參考。

重要啟動 ms-drive-to:ms-walk-to: URI 方案時,地圖應用程式將檢查裝置是否曾經進行 GPS 位置修復。 如果有,則地圖應用程式將繼續進行路線導航。 如果沒有,應用程式將顯示路線概覽,如顯示路線和路況中所述

an example of turn-by-turn directions

範例 URI 結果
ms-drive-to:?destination.latitude=47.680504&destination.longitude=-122.328262&destination.name=Green Lake 顯示地圖,其中包含從您目前位置前往綠湖的路線導航。
ms-walk-to:?destination.latitude=47.680504&destination.longitude=-122.328262&destination.name=Green Lake 顯示地圖,其中包含從您目前位置前往綠湖的路線規劃步行路線。

下載離線地圖

ms-settings: URI 配置可讓您直接在設定應用程式中啟動至特定頁面。 雖然 ms-settings: URI 方案不會啟動到地圖應用程式,但它允許您直接啟動到設定應用程式中的離線地圖頁面,並顯示一個確認對話框以下載地圖應用程式使用的離線地圖。 URI 配置會接受緯度和經度所指定的點,並自動判斷是否有離線地圖可供包含該點的區域使用。 如果傳遞的緯度和經度恰好落在多個下載區域內,確認對話方塊將讓使用者選擇要下載的區域。 如果離線地圖不適用於包含該點的區域,則設定應用程式中的離線地圖頁面會顯示錯誤對話方塊。

範例 URI 結果
ms-settings:maps-downloadmaps?latlong=47.6,-122.3 開啟設定應用程式並進入離線地圖頁面,其中顯示確認對話框,用於下載包含指定緯度-經度點的區域的地圖。

bingmaps: 參數參考

此表中每個參數的語法均使用增強巴科斯範式 (ABNF) 顯示。

參數 定義 ABNF 定義和範例 詳細資料

cp

中心點

cp = "cp=" cpval

cpval = degreeslat “~” degreeslon

degreeslat = ["-"] 1*3DIGIT ["." 1*7DIGIT]

degreeslon = ["-"] 1*2DIGIT ["." 1*7DIGIT]

範例:

cp=40.726966~-74.006076

這兩個值都必須以十進制度數表示,並以波形符號 (~) 分隔。

有效的經度值介於 -180 和 +180 之間。

有效的緯度值介於 -90 和 +90 之間。

bb

週框方塊

bb = "bb=" southlatitude "_" westlongitude "~" northlatitude "_" eastlongitude

southlatitude = degreeslat

northlatitude = degreeslat

westlongitude = degreeslon

eastlongitude = degreeslon

degreeslat = ["-"] 13DIGIT ["." 17DIGIT]

degreeslon = ["-"] 12DIGIT ["." 17DIGIT]

範例:

bb=39.719_-74.52~41.71_-73.5

指定以十進位表示的邊界框的矩形區域,使用波形符號 (~) 將左下角與右上角分開。 每個的緯度和經度會以底線 (_) 分隔。

有效的經度值介於 -180 和 +180 之間。

有效的緯度值介於 -90 和 +90 之間。

當提供邊界框時,cp 和 lvl 參數將被忽略。

where

Location

where = "where=" whereval

whereval = 1*( ALPHA / DIGIT / "-" / "." / "_" / pct-encoded / "!" / "$" / "'" / "(" / ")" / "*" / "+" / "," / ";" / ":" / "@" / "/" / "?")

範例:

where=1600%20Pennsylvania%20Ave,%20Washington,%20DC

特定位置、地標或地點的搜尋字詞。

q

查詢字詞

q = "q="

whereval

範例:

q=mexican%20restaurants

本地企業或企業類別的搜尋字詞。

lvl

縮放等級

lvl = "lvl=" 12DIGIT ["." 12DIGIT]

範例:

lvl=10.50

定義地圖檢視的縮放層級。 有效值為 1-20,其中 1 表示完全縮小。

sty

樣式

sty = "sty=" ("a" / "r"/"3d")

範例:

sty=a

定義地圖樣式。 此參數的有效值包含:

  • a:顯示地圖的空照檢視。
  • r:顯示地圖的道路檢視。
  • 3d:顯示地圖的 3D 檢視。 與 cp 參數結合使用,也可以與 rad 參數結合使用。

在 Windows 10 中,空照檢視和 3D 檢視樣式相同。

注意 省略 sty 參數會產生與 sty=r 相同的結果。
 

rad

半徑

rad = "rad=" 1*8DIGIT

範例:

rad=1000

指定所需地圖檢視檢視的圓形區域。 半徑值是以公尺為單位來測量。

pit

音調

pit = "pit=" pitch

範例:

pit=60

指出地圖所檢視的角度,其中 90 是查看地平線 (最大值),0 是直下看 (最小值)。

有效的角度在 0 到 90 之間 (含 0 和 90)。

hdg

標題

hdg = "hdg=" heading

範例:

hdg=180

指示地圖前進的方向 (以度為單位),其中 0 或 360 = 北,90 = 東,180 = 南,270 = 西。

ss

街邊

ss = "ss=" BIT

範例:

ss=1

表示當 ss=1 時會顯示街道層級影像。 省略 ss 參數會產生與 ss=0相同的結果。 搭配 cp 參數使用來指定街道層級檢視的位置。

注意所有區域都無法使用街層影像。
 

trfc

交通流量

trfc = "trfc=" BIT

範例:

trfc=1

指定地圖上是否包含交通資訊。 省略 trfc 參數會產生與 trfc=0 相同的結果。

注意並非所有地區都提供交通資料。
 

rtp

路由

rtp = "rtp=" (waypoint "~" [waypoint]) / ("~" waypoint)

waypoint = ("pos." point ) / ("adr." whereval)

point = "point." pointval ["_" title]

pointval = degreeslat "" degreeslon

degreeslat = ["-"] 13DIGIT ["." 17DIGIT]

degreeslon = ["-"] 12DIGIT ["." 17DIGIT]

title = whereval

whereval = 1( ALPHA / DIGIT / "-" / "." / "_" / pct-encoded / "!" / "$" / "'" / "(" / ")" / "" / "+" / "," / ";" / ":" / "@" / "/" / "?")

範例:

rtp=adr.Mountain%20View,%20CA~adr.SFO

rtp=adr.One%20Microsoft%20Way,%20Redmond,%20WA~pos.45.23423_-122.1232_My%20Picnic%20Spot

定義要在地圖上繪製之路線的開始和結尾,並以底圖分隔 (~)。 每個航路點都由使用緯度、經度和可選標題的位置或位址標識符定義。

完整路由包含完全相同的兩個路徑。 例如,具有兩個路徑點的路由是由 rtp="A"~"B" 定義。

指定不完整的路線也是可以接受的。 例如,您只能使用 rtp="A"~ 定義路線的開頭。 在這種情況下,方向輸入將與欄位中提供的航路點一起顯示,並且欄位具有焦點。

如果僅指定路線的終點 (如使用 rtp=~"B"),則方向面板將顯示,並且在欄位中會顯示提供的航路點。 如果有準確的目前位置,則目前位置將預先填入在具有焦點的寄件者欄位中。

未提供不完整的路線時,不會繪製任何路線。

mode 參數結合使用來指定交通方式 (開車、公車或步行)。 如果未指定模式,將使用使用者偏好的交通方式提供方向。

注意如果位置是由 pos 參數值指定,則標題可用於位置。 不會顯示緯度和經度,而是會顯示標題。
 

mode

運輸模式

mode = "mode=" ("d" / "t" / "w")

範例:

mode=d

定義運輸模式。 此參數的有效值包含:

  • d:顯示行駛路線概觀
  • t:顯示傳輸方向的路線概觀
  • w:顯示步行方向的路線概覽

rtp 參數搭配使用以取得運輸方向。 如果未指定模式,將使用使用者偏好的交通方式提供方向。 模式可以無路線參數提供,以從目前位置輸入該模式的指示輸入。

collection

集合

collection = "collection="(name"~"/)point["~"point]

name = "name." whereval

whereval = 1( ALPHA / DIGIT / "-" / "." / "_" / pct-encoded / "!" / "$" / "'" / "(" / ")" / "" / "+" / "," / ";" / ":" / "@" / "/" / "?")

point = "point." pointval ["_" title]

pointval = degreeslat "" degreeslon

degreeslat = ["-"] 13DIGIT ["." 17DIGIT]

degreeslon = ["-"] 12DIGIT ["." 17DIGIT]

title = whereval

範例:

collection=name.My%20Trip%20Stops~point.36.116584_-115.176753_Las%20Vegas~point.37.8268_-122.4798_Golden%20Gate%20Bridge

要加入至地圖和清單的點集合。 點的集合可以使用 name 參數來命名。 使用緯度、經度和選擇性標題來指定點。

以波浪號分隔名稱和多個點 (~)。

如果您指定的專案包含Tilde,請確定Tilde 編碼為 %7E。 如果不附有中心點和縮放等級參數,則該集合將提供最佳的地圖視圖。

重要如果您指定的專案包含底線,請確定底線編碼為 %255F。

 

ms-drive-to: 參數參考

啟動轉彎駕駛方向要求的 URI 不需要編碼,而且具有下列格式。

注意您未在此 URI 設定中指定起點。 起點一律會假設為目前的位置。 如果您需要指定目前位置以外的起點,請參閱顯示方向和交通

 

參數 定義 範例 詳細資料
destination.latitude Destination latitude 範例:destination.latitude=47.6451413797194 目的地的緯度。 有效的緯度值介於 -90 和 +90 之間。
destination.longitude Destination longitude 範例:destination.longitude=-122.141964733601 目的地的經度。 有效的經度值介於 -180 和 +180 之間。
destination.name 目的地的名稱 範例:destination.name=Redmond, WA 目的地名稱。 您不需要編碼 destination.name 值。

 

ms-walk-to: 參數參考

發起路線規劃步行路線請求的 URI 不需要編碼,並且具有以下格式。

注意您未在此 URI 設定中指定起點。 起點一律會假設為目前的位置。 如果您需要指定目前位置以外的起點,請參閱顯示方向和交通。  

參數 定義 範例 詳細資料
destination.latitude Destination latitude 範例:destination.latitude=47.6451413797194 目的地的緯度。 有效的緯度值介於 -90 和 +90 之間。
destination.longitude Destination longitude 範例:destination.longitude=-122.141964733601 目的地的經度。 有效的經度值介於 -180 和 +180 之間。
destination.name 目的地的名稱 範例:destination.name=Redmond, WA 目的地名稱。 您不需要編碼 destination.name 值。

ms-settings: 參數參考

ms-settings: URI 方案的地圖應用程式特定參數的語法定義如下。 maps-downloadmapsms-settings: URI 一起以 ms-settings:maps-downloadmaps? 的形式指定。 指示離線地圖設定頁面。 

參數 定義 範例 詳細資料
latlong 定義離線地圖區域的點。 範例:latlong=47.6,-122.3 地理點是由以逗號分隔的緯度和經度來指定。 有效的緯度值介於 -90 和 +90 之間。 有效的經度值介於 -180 和 +180 之間。