啟動 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>
以下是 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 參數搜尋地點時,我們建議使術語盡可能具體,並使用 cp、bb 或 where 參數指定搜尋位置。 如果您未指定搜尋位置,且使用者目前的位置無法使用,搜尋可能不會傳回有意義的結果。 搜尋結果會顯示在最適當的地圖檢視檢視中。 如需這些和其他參數的詳細資訊,請參閱 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: 參數參考。
範例 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 位置修復。 如果有,則地圖應用程式將繼續進行路線導航。 如果沒有,應用程式將顯示路線概覽,如顯示路線和路況中所述。
範例 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 |
定義地圖樣式。 此參數的有效值包含:
在 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 |
表示當
注意所有區域都無法使用街層影像。
|
trfc |
交通流量 |
trfc = "trfc=" BIT 範例: trfc=1 |
指定地圖上是否包含交通資訊。 省略 trfc 參數會產生與
注意並非所有地區都提供交通資料。
|
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 |
定義要在地圖上繪製之路線的開始和結尾,並以底圖分隔 (~)。 每個航路點都由使用緯度、經度和可選標題的位置或位址標識符定義。 完整路由包含完全相同的兩個路徑。 例如,具有兩個路徑點的路由是由 指定不完整的路線也是可以接受的。 例如,您只能使用 如果僅指定路線的終點 (如使用 未提供不完整的路線時,不會繪製任何路線。 與 mode 參數結合使用來指定交通方式 (開車、公車或步行)。 如果未指定模式,將使用使用者偏好的交通方式提供方向。
注意如果位置是由 pos 參數值指定,則標題可用於位置。 不會顯示緯度和經度,而是會顯示標題。
|
mode |
運輸模式 |
mode = "mode=" ("d" / "t" / "w") 範例: mode=d |
定義運輸模式。 此參數的有效值包含:
與 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 編碼為 重要如果您指定的專案包含底線,請確定底線編碼為 %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-downloadmaps 與 ms-settings: URI 一起以 ms-settings:maps-downloadmaps? 的形式指定。 指示離線地圖設定頁面。
參數 | 定義 | 範例 | 詳細資料 |
---|---|---|---|
latlong | 定義離線地圖區域的點。 | 範例:latlong=47.6,-122.3 | 地理點是由以逗號分隔的緯度和經度來指定。 有效的緯度值介於 -90 和 +90 之間。 有效的經度值介於 -180 和 +180 之間。 |