iOS 向け Google マップ URL スキーム

iOS 9 以降を搭載したデバイスでは、Google マップの URL があれば、ユニバーサル リンクを使用して Google マップを起動できます。

Google マップの URL スキームを使用すると、iOS 向け Google マップ アプリを起動して、検索、ルート検索、地図ビューの表示を行うことができます。Google マップを起動すると、バンドル ID がリクエストの一部として自動的に送信されます。

Google マップの URL スキームを使用するのに、Google API キーは必要ありません。

iOS 向け Google マップは、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 にオプションを設定して、起動したアプリケーションに渡すことができます。iOS 用 Google マップアプリは、次の URL スキームをサポートしています。

  • comgooglemaps:// - このスキームを使用すると、iOS 向け Google マップアプリを起動して、次のいずれかのアクションを実行できます。

    • 位置とズーム レベルを指定して地図を表示する。
    • 位置やスポットを検索し、地図上に表示する。
    • ある地点から別の地点への経路を要求する。ルートは、車、徒歩、自転車、公共交通機関の 4 つの移動手段で返すことができます。
    • アプリにナビゲーションを追加する。
  • comgooglemapsurl:// - このスキームを使用すると、デスクトップ版 Google マップのウェブサイトから取得した URL を使用して、iOS 向け Google マップアプリを起動できます。つまり、Google マップのウェブサイトを読み込むのではなく、ユーザーにモバイル エクスペリエンスを提供できます。

    • 元の URL は、maps.google.com または google.com/maps の URL、または com の代わりに有効なトップレベルの国別ドメインを使用する URL です。goo.gl/maps リダイレクト URL を渡すこともできます。

iOS 向け Google マップ アプリを起動して特定の機能を実行する

iOS 向け Google マップ アプリを起動し、必要に応じてサポートされている機能のいずれかを実行するには、次の形式の 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 スキームは iOS 用 Google マップアプリを起動します。

  • 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 の例では、指定した場所の周辺で「ピザ」を検索します。

comgooglemaps://?q=Pizza&center=37.759748,-122.427135

近辺のピザ

以下に、その他の例を示します。

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

経路を表示する

このスキームを使用して、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&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

アプリにナビゲーションを追加する

iOS 向け Google マップアプリを起動してルートをリクエストすると、アプリからターンバイターン方式のナビにアクセスできるようになります。comgooglemaps:// URL スキームを使用できます。

パソコン版 Google マップの URL から iOS 用 Google マップアプリを起動する

ウェブページやデータベースなど、アプリが既存の Google マップ URL にアクセスできる場合は、このスキームを使用して iOS 版 Google マップ アプリで URL を開き、ユーザーに最適なモバイル エクスペリエンスを提供できます。

  • http:// または https:// スキームを comgooglemapsurl:// に置き換えます。

サポートされている Google マップの URL 形式

comgooglemapsurl:// スキームは、この正規表現に一致する URL をサポートします。ここで、{TLD} は有効なトップレベルの国別ドメインを指します。明確にするために記すと、改行が追加されています。

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

Google マップ アプリの提供状況を確認する

まず、iOS 版 Google マップ アプリがデバイスで利用可能であり、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