iOS 9 以降を搭載したデバイスでは、 ユニバーサル リンクを使用して Google マップ URL がある場合に Google マップを起動できます。
Google マップ URL スキームを使用すると、 Google マップ アプリ(iOS 版) を起動して、検索、ルート検索 リクエスト、地図ビューの表示を行うことができます。Google マップを起動すると、バンドル識別子がリクエストの一部として自動的に送信されます。
Google マップ URL スキームを使用するために Google API キーは必要ありません。
ユニバーサル リンクと Google マップ
Google マップ(iOS 版)は、iOS 9 以降を搭載したデバイスで ユニバーサル リンクをサポートしています。
URL が次の正規表現に一致し、デバイスが 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"]];
概要
URL スキームを使用すると、別の iOS アプリまたはウェブ アプリケーションから iOS アプリケーションを起動できます。起動したアプリケーションに渡されるオプションを URL で設定できます。Google マップ アプリ(iOS 版)は、次の URL スキームをサポートしています。
comgooglemaps://- このスキームを使用すると、Google マップ アプリ (iOS 版)を起動して、次のいずれかのアクションを実行できます。- 位置とズーム レベルを指定して地図を表示する。
- 位置やスポットを検索し、地図上に表示する。
- ある地点から別の地点への経路を要求する。ルートは、車、徒歩、自転車、公共交通機関の 4 つの移動手段で返されます。
- アプリにナビゲーションを追加する。
comgooglemapsurl://- このスキームを使用すると、パソコン版 Google マップ ウェブサイトから派生した URL を使用して、Google マップ アプリ (iOS 版)を起動できます。つまり、Google マップ ウェブサイトを読み込むのではなく、モバイル エクスペリエンスをユーザーに提供できます。- 元の URL は、
maps.google.com、google.com/maps、 またはcomの代わりに有効なトップレベルの国ドメインを使用できます。goo.gl/mapsリダイレクト URL を渡すこともできます。
- 元の URL は、
Google マップ アプリ(iOS 版)を起動して特定の機能を実行する
Google マップ アプリ(iOS 版)を起動して、サポートされている機能のいずれかを実行するには、次の形式の URL スキームを使用します。
comgooglemaps://?parameters
パラメータについては、本書で後ほど解説します。
デバイスで Google マップ アプリが利用可能かどうかを確認する
アプリでこれらの URL のいずれかをユーザーに提示する前に、アプリケーションがインストールされていることを確認する必要があります。アプリは、次のコードを使用して URL スキームが利用可能かどうかを確認できます。
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://");
}
地図を表示する
URL スキームを使用して、指定したズームレベルと位置で地図を表示します。 地図の上に他のビューをオーバーレイしたり、ストリートビューの画像を表示したりもできます。
パラメータ
以下に示すパラメータはすべて省略可能です。パラメータが設定されていない場合、URL スキームは Google マップ アプリ(iOS 版)を起動します。
center: 地図のビューポートの中心点です。latitude,longitudeのカンマ区切り文字列としてフォーマットされます。mapmode: 表示する地図の種類を設定します。standardまたはstreetviewに設定できます。指定しない場合は、現在のアプリケーション設定が使用されます。views: 特定のビューのオン/オフを切り替えます。satellite、traffic、transitに設定できます。複数の値をカンマ区切りで設定できます。値なしでパラメータを指定すると、すべてのビューがクリアされます。zoom: 地図のズームレベルを指定します。
この URL の例では、ニューヨークを中心とした地図がズーム 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
検索
ビューポート位置を指定して検索を実行するには、以下のスキームを使用します。
パラメータ
地図の表示に使用するパラメータに加えて、検索では q パラメータがサポートされています。
q: 検索のクエリ文字列。
この URL の例では、指定した位置周辺の「Pizza」を検索します。
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
ルートを表示する
このスキームを使用して、2 つの地点間のルートをリクエストして表示します。 その際に、移動モードを指定することもできます。
パラメータ
saddr: ルート検索の出発地を設定します。緯度、経度、またはクエリ形式のアドレスを指定できます。複数の結果を返すクエリ文字列の場合は、最初の結果が選択されます。値を空白のままにすると、ユーザーの現在地が使用されます。daddr: ルート検索の目的地を設定します。saddrと同じ形式と動作になります。directionsmode: 移動手段。driving、transit、bicycling、walkingに設定できます。
この URL の例では、Google NYC と 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
アプリにナビゲーションを追加する
ルート検索リクエストで Google マップ アプリ(iOS 版)を起動すると、アプリからターンバイターン方式のナビゲーションにアクセスできます。comgooglemaps:// URL スキームを使用できます。
Google マップのパソコン版 URL から Google マップ アプリ(iOS 版)を起動する
アプリがウェブページやデータベースなど、既存の Google マップ URL にアクセスできる場合は、このスキームを使用して Google マップ アプリ(iOS 版)で URL を開くことで、ユーザーに最適なモバイル エクスペリエンスを提供できます。
http://またはhttps://スキームをcomgooglemapsurl://に置き換えます。
サポートされている Google マップ URL 形式
comgooglemapsurl:// スキームは、この正規表現に一致する URL をサポートしています。ここで、{TLD} は有効なトップレベルの国ドメインを表します。明確にするために記すと、改行を追加しています。
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Google マップ アプリが利用可能かどうかを確認する
まず、Google マップ アプリ(iOS 版)がデバイスで利用可能で、URL スキームをサポートしていることを確認します。
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemapsurl://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
例
一般的な Google マップ URL の例:
元の Google マップ URL:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
使用する URL スキーム:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
一般的な Google マップ URL の例:
元の Google マップ URL:
https://maps.google.com/?q=@37.3161,-122.1836
使用する URL スキーム:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836