Google 地圖網址架構 (iOS)

在搭載 iOS 9 以上版本的裝置上,您可以使用 通用連結:導入 Google 擁有 Google 地圖網址時的地圖。

您可以使用 Google 地圖網址配置來啟動 iOS 版 Google 地圖應用程式並執行搜尋、取得路線指引 及顯示地圖檢視。當你推出 Google 地圖時, ID 會在請求中自動傳送

您不需要 Google API 金鑰,就能使用 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 應用程式 或是網頁應用程式您可以在要傳遞至 啟動應用程式iOS 版 Google 地圖應用程式支援下列網址 計劃:

  • 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 地圖應用程式 Google 地圖電腦版網站。也就是說 請為使用者打造原生的行動體驗 載入 Google 地圖網站。

    • 原始網址可以是 maps.google.com,也可以是 google.com/maps, 或使用任何有效的頂層網域國家/地區網域,而非 com。 您也可以傳遞 goo.gl/maps 個重新導向網址。
    • 您可以使用 x-sourcex-success 發出回呼 參數中含有 comgooglemapsurl:// 網址配置。

啟動 Google 地圖應用程式 iOS 版並執行特定功能

如何啟動 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. 如果沒有設定參數, 網址配置將啟動 Google 地圖應用程式 iOS 版。

  • center:這是地圖可視區域的中心點。採用半形逗號格式 latitude,longitude 的分隔字串。
  • mapmode:設定顯示的地圖類型。可設為:standardstreetview。如果未指定,則會將目前的應用程式設定
  • views:開啟/關閉特定檢視畫面。可設為:satellitetraffictransit。您可以使用 分隔符如果指定沒有值的參數,則 。
  • zoom:指定地圖的縮放等級。

這個範例網址會顯示以紐約為中心,縮放等級為 14 的地圖,且 路況檢視:

comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic

New York traffic map

以下是一些其他範例:

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&center=37.759748,-122.427135

Nearby Pizza

以下是一些其他範例:

comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA&center=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan&center=35.660888,139.73073&zoom=15&views=transit

顯示路線

使用這個配置,要求並顯示兩個位置之間的路線。 You can also specify the transportation mode.

參數

  • saddr:設定路線搜尋的起點。可用的值包括 經緯度或查詢格式化地址如果是查詢 字串傳回多個結果,第一個結果會是 已選取。如果將值留空,表示使用者目前的所在位置
  • daddr:設定路線搜尋的終點。擁有 格式和行為與 saddr 相同
  • directionsmode:交通方式,可設為:drivingtransitbicyclingwalking

範例網址會顯示 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&center=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&center=37.423725,-122.0877&directionsmode=walking&zoom=17

指定回呼網址

如要指定回呼網址,您必須使用 comgooglemaps-x-callback:// 網址配置。這個配置遵循 x-callback-url 規格。呼叫 iOS 版 Google 地圖應用程式時 採用這個配置,應用程式會在頂端顯示一個按鈕 。輕觸此按鈕後,系統就會回呼該網址 您指定的所有 Pod 數量

comgooglemaps-x-callback:// 的要求必須使用以下格式:

comgooglemaps-x-callback://?parameters

參數

X 回呼網址配置接受與 comgooglemaps:// 相同的參數 網址配置,包含下列其他參數。這兩個參數 這通常代表交易 不會十分要求關聯語意

  • x-source — 傳送 x 回呼的應用程式名稱 請求。建議使用簡稱。
  • x-success:完成後要呼叫的網址。這通常 是應用程式的網址配置,可讓使用者返回 應用程式。

請注意,您的應用程式必須註冊自己的網址配置,才能 回應回呼網址。

  1. 請確保您的應用程式已註冊可回應的網址配置 。
  2. x-source 參數中傳遞回呼按鈕的標籤。
  3. x-success 參數中傳遞回呼網址。

下例會啟動 iOS 版 Google 地圖應用程式並顯示地圖 以紐約為中心此外,應用程式還會顯示標示為「SourceApp」的按鈕。 「SourceApp」當使用者點選按鈕時,Google 地圖應用程式 iOS 版就會發生問題 對網址配置 sourceapp://?resume=true 的回呼。

comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
   &x-success=sourceapp://?resume=true
   &x-source=SourceApp

如同 comgooglemaps:// 網址配置,您必須先驗證 Google 地圖應用程式 iOS 版可供裝置使用,且支援 x 回呼網址配置。應用程式可以檢查此網址配置是否可用 替換為下列程式碼:

Swift

UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)

Objective-C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemaps-x-callback://"]];

此網址範例可讓使用者在搜尋後返回應用程式 甜點

comgooglemaps-x-callback://?q=dessert&center=37.759748,-122.427135
   &x-success=sourceapp://?resume=true
   &x-source=Nom+Nom

在應用程式中加入導覽功能

用 Google 地圖應用程式啟動 iOS 版的路線要求,即可輕鬆 讓使用者存取應用程式中的即時路線導航。別擔心!您可以使用 comgooglemaps://comgooglemaps-x-callback:// 網址配置。

此程式碼片段說明如何使用 comgooglemaps-x-callback:// 配置來 要求路線,並在使用者準備就緒後返回您的應用程式。 程式碼將執行以下作業:

  1. 確認 comgooglemaps-x-callback:// 網址配置可供使用。
  2. 啟動 Google 地圖應用程式 iOS 版,然後查詢前往 JFK 機場的路線指示: 臺北市。將起始地址留空,即可從 使用者目前的位置
  3. 新增標示為「AirApp」的按鈕Google 地圖應用程式中的 iOS 版。按鈕 標籤是由 x-source 參數定義
  4. 當使用者點擊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 地圖電腦版網址啟動 Google 地圖應用程式 iOS 版

如果您的應用程式可存取現有的 Google 地圖網址,例如網頁 或資料庫,你可以使用這個配置在 Google 地圖應用程式中開啟網址 因此能為使用者提供最佳原生體驗。

  1. http://https:// 配置替換為 comgooglemapsurl://
  2. 如要使用回呼,請納入 x-sourcex-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」按鈕時,Android 版 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