如果您擁有搭載 Google 地圖的網址,可以在搭載 iOS 9 以上版本的裝置上,使用通用連結來啟動 Google 地圖。
您可以使用 Google 地圖網址配置來啟動 iOS 版 Google 地圖應用程式並執行搜尋、規劃路線要求及顯示地圖檢視。當您啟動 Google 地圖時,系統會自動將您的組合識別碼作為要求的一部分傳送。
即使沒有 Google API 金鑰,也可以使用 Google 地圖網址配置。
通用連結和 Google 地圖
Google 地圖 iOS 版在搭載 iOS 9 以上版本的裝置上支援通用連結。
如果您的網址符合以下規則運算式,且裝置執行的是 iOS 9 或更新版本,不妨考慮使用 openURL: 方法。
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
例如:
Swift
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
總覽
透過網址配置,您可以從其他 iOS 應用程式或網路應用程式啟動原生 iOS 應用程式。您可以在要傳送至已啟動應用程式的網址中設定選項。Google 地圖應用程式 iOS 版支援以下網址配置:
comgooglemaps://
和comgooglemaps-x-callback://
:這些配置可讓您啟動 iOS 版 Google 地圖應用程式,並執行以下其中一項操作:- Display a map at a specified location and zoom level.
- Search for locations or places, and display them on a map.
- Request directions from one location to another. 導航有四種交通方式:開車、步行、單車和大眾運輸。
- 在應用程式中新增導覽功能。
- 在 iOS 8 中,使用
comgooglemaps-x-callback://
在應用程式完成後發出回呼。回呼通常可將使用者帶回原本在 Google iOS 版開啟的應用程式。請注意,在 iOS 9 中,系統會自動在狀態列的左上角提供 [返回] 連結。
comgooglemapsurl://
- 此配置可讓您使用從電腦版 Google 地圖網站取得的網址, 啟動 iOS 版 Google 地圖應用程式。換句話說,您可以為使用者提供原生的行動體驗,而不只是載入 Google 地圖網站。- 原始網址可能是
maps.google.com
或google.com/maps
,或是使用任何有效的頂層網域國家/地區網域,而非com
。 您也可以傳遞goo.gl/maps
重新導向網址。 - 您可以使用
comgooglemapsurl://
網址配置來搭配x-source
和x-success
參數發出回呼。
- 原始網址可能是
啟動 iOS 版 Google 地圖應用程式並執行特定功能
若要啟動 iOS 版 Google 地圖應用程式並選擇性執行其中一項支援的函式,請使用以下格式的網址配置:
comgooglemaps://?parameters
或是:
comgooglemaps-x-callback://?parameters
本文稍後會詳細說明參數。
檢查裝置是否支援 Google 地圖應用程式
向應用程式中的使用者提供其中一個網址之前,請先確認是否已安裝該應用程式。您的應用程式可透過下列程式碼檢查網址配置是否可用:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
舉例來說,如要顯示紐約中央公園的地圖,可以使用以下程式碼:
Swift
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
顯示地圖
使用網址架構,即可依指定的縮放等級和位置顯示地圖。You can also overlay other views on top of your map, or display Street View imagery.
參數
All of the following parameters are optional. 如未設定參數,網址配置就會啟動 iOS 版 Google 地圖應用程式。
center
:這是地圖可視區域的中心點。採用以逗號分隔的latitude,longitude
字串格式。mapmode
:設定顯示的地圖類型。可以設定為standard
或streetview
。如未指定,系統會使用目前的應用程式設定。views
:開啟/關閉特定檢視畫面。可設為satellite
、traffic
或transit
。您可以使用半形逗號分隔符來設定多個值。如果指定沒有值,則將會清除所有檢視畫面。zoom
:指定地圖的縮放等級。
這個範例網址會顯示以 14 度為中心的地圖的地圖 (縮放等級為 14),而路況檢視已開啟:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
其他例子包括:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
搜尋
Use this scheme to display search queries in a specified viewport location.
參數
除了用來顯示地圖的參數以外,Google 搜尋也支援 q
參數。
q
:您搜尋的查詢字串。
這個範例網址可搜尋指定位置附近的「披薩」:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
其他例子包括:
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
顯示路線
您可以使用這個配置來要求並顯示兩個位置之間的路線。You can also specify the transportation mode.
參數
saddr
:設定路線搜尋的起點。可以是緯度、經度或查詢格式的地址。如果是用來傳回多個結果的查詢字串,系統會選取第一個結果。如果不設定這個值,系統會使用使用者目前的位置。daddr
:設定路線搜尋的終點。格式與行為與saddr
相同。directionsmode
:交通方式。可以設定為driving
、transit
、bicycling
或walking
。
範例網址顯示 Google 紐約市和 JFK 機場之間的大眾運輸路線:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
其他例子包括:
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
指定回呼網址
如要指定回呼網址,您必須使用 comgooglemaps-x-callback://
網址配置。這項配置符合 x-callback-url 規格。使用這個配置呼叫 iOS 版 Google 地圖應用程式時,應用程式會在螢幕頂端顯示一個按鈕。輕觸此按鈕後,系統會針對您指定的網址發出回呼。
對 comgooglemaps-x-callback://
的要求必須採用以下格式:
comgooglemaps-x-callback://?parameters
參數
x-callback URL 配置接受與 comgooglemaps://
URL 配置相同的參數,以及下列額外參數。這兩個參數皆為必要參數。
x-source
:傳送 x-callback 要求的應用程式名稱。建議使用簡稱。x-success
- 完成後要呼叫的網址。這通常是自家應用程式的網址配置,可讓使用者返回原始應用程式。
請注意,您的應用程式必須註冊自己的網址配置,才能回應回呼網址。
- 請確認您的應用程式已註冊可回應回呼要求的網址配置。
- 在
x-source
參數中傳送回呼按鈕的標籤。 - 在
x-success
參數中傳遞回呼網址。
以下範例會啟動 iOS 版 Google 地圖應用程式,並顯示以紐約為中心的地圖。此外,應用程式也會顯示標示「SourceApp」的按鈕。
按下 [SourceApp] 按鈕後,iOS 版 Google 地圖應用程式就會對虛構的網址配置 sourceapp://?resume=true
發出回呼。
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
與 comgooglemaps://
網址配置一樣,您必須先驗證該裝置是否支援 iOS 版 Google 地圖應用程式,並且支援 x-callback 網址配置。您的應用程式可透過下列程式碼檢查網址配置是否可用:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
這個範例網址範例:可讓使用者在搜尋甜點後返回應用程式。
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
在應用程式中加入導覽
透過路線要求啟動 iOS 版 Google 地圖應用程式,可讓您輕鬆讓使用者從您的應用程式使用即時路線導航功能,您可以使用 comgooglemaps://
或 comgooglemaps-x-callback://
網址配置。
下列程式碼片段顯示如何使用 comgooglemaps-x-callback://
配置來要求路線,然後在使用者準備就緒時返回您的應用程式。該程式碼會執行下列作業:
- 確認
comgooglemaps-x-callback://
網址配置可供使用。 - 啟動 iOS 版 Google 地圖應用程式,並查詢前往紐約市的甘迺迪機場。如需取得使用者目前所在位置的路線指示,請將欄位留空。
- 在 Google 地圖應用程式 iOS 版中新增標示為「AirApp」的按鈕。按鈕標籤是由
x-source
參數定義。 - 當使用者點選返回按鈕時,呼叫虛構網址配置
sourceapp://
。
Swift
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
透過 Google 地圖電腦版網址 iOS 版推出 Google 地圖應用程式
如果您的應用程式可存取現有的網頁或 Google 地圖網址 (例如網頁或資料庫),您可以使用這個配置在 iOS 版 Google 地圖應用程式中開啟網址,讓使用者享有最佳原生體驗。
- 將
http://
或https://
配置替換成comgooglemapsurl://
。 - 如要使用回呼,請加入
x-source
和x-success
參數。這項配置符合 x-callback-url 規格。
支援的 Google 地圖網址格式
comgooglemapsurl://
配置支援符合這個規則運算式的網址,其中 {TLD}
是指任何有效的頂層網域。為求清楚起見,系統會加入換行符號:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
檢查 Google 地圖應用程式的可用性
請先確認裝置是否支援 iOS 版 Google 地圖應用程式,並支援網址配置:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
範例
一般 Google 地圖網址範例:
原始 Google 地圖網址:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
使用網址配置:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
一般 Google 地圖網址範例:
原始 Google 地圖網址:
https://maps.google.com/?q=@37.3161,-122.1836
使用網址配置:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
使用 x-callback 要求前往東京鐵塔的路線範例:
原始 Google 地圖網址:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
以下範例會啟動 iOS 版 Google 地圖應用程式,並顯示顯示前往東京鐵塔的地圖 (如上方的 Google 地圖網址所示)。此外,應用程式也會顯示標示「SourceApp」的按鈕。按下 [SourceApp] 按鈕後,iOS 版 Google 地圖應用程式就會對虛構的網址配置 sourceapp://?resume=true
發出回呼。
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true