Google マップ URL スキーム

Google マップ URL スキームを使用すると、Google Maps for iOS アプリを起動して、検索の実行、ルート案内リクエスト、マップ ビューの表示などを行うことができます。

Google マップを起動すると、リクエストの一部として自動的にバンドル識別子が送信されます。

概要

URL スキームは、他の iOS アプリケーションやウェブ アプリケーションからネイティブ iOS アプリを起動する仕組みです。 起動するアプリケーションに渡すオプションを URL に設定することができます。 Google Maps for iOS アプリは、次の URL スキームをサポートしています。

  • comgooglemaps://comgooglemaps-x-callback:// - この 2 つのスキームを使用すると、Google Maps for iOS アプリを起動して次のいずれかのアクションを行うことができます。

    • 指定された位置とズームレベルでマップを表示します。
    • 位置またはプレイスを検索し、それらをマップに表示します。
    • ある位置から別の位置までのルート案内をリクエストします。 ルート案内は、車、徒歩、自転車、公共交通機関の 4 つの移動モードで返されます。

    • アプリにナビゲーションを追加します。

    • comgooglemaps-x-callback:// を使用してアプリが終了した際にコールバックを実行します。 通常、コールバックは、Google Maps for iOS を開いた元のアプリにユーザーを戻すために使用します。
  • comgooglemapsurl:// - このスキームを使用すると、デスクトップの Google マップ ウェブサイトから派生した URL によって Google Maps for iOS アプリを開くことができます。 これによって、単に Google マップ ウェブサイトを読み込むのではなく、ユーザーにネイティブのモバイル アプリの操作性を提供できるようになります。

    • 元の URL として、maps.google.comgoogle.com/maps を利用できます。また com の代わりに有効なトップレベルの国ドメインを指定することもできます。

    リダイレクト用の URL である goo.gl/maps を渡すこともできます。 * comgooglemapsurl:// URL スキームを使用して x-source パラメータや x-success パラメータを使用すると、コールバックを実行することができます。

Google Maps for iOS アプリの起動と特定の機能の実行

Google Maps for iOS アプリを起動するには、次の形式で URL スキームを使用します。その際に、サポートされている機能を実行することもできます。

comgooglemaps://?parameters

または:

comgooglemaps-x-callback://?parameters

パラメータについては、本書で後ほど解説します。

デバイスで Google Maps アプリが使用できるかの確認

アプリケーションでユーザーに URL を提示する前に、アプリがインストールされていることを検証する必要があります。 次のコードを使うと、アプリで URL スキームが利用可能かどうかを確認できます。

Objective-C

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

Swift

UIApplication.sharedApplication().canOpenURL(
    NSURL(string: "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://");
}

Swift

if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"comgooglemaps://")!)) {
  UIApplication.sharedApplication().openURL(NSURL(string:
      "comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
  print("Can't use comgooglemaps://");
}

マップを表示する

URL スキームを使用すると、ズームレベルと場所を指定してマップを表示できます。 マップの上に他のビューを重ねたり、ストリート ビュー画像を表示することもできます。

パラメータ

次のパラメータはすべて省略可能です。 パラメータを設定しないと、URL スキームは Google Maps for iOS アプリの起動のみを行います。

  • center:マップのビューポートの中心です。 latitude,longitude というコンマ区切りの文字列で緯度と経度を指定します。

  • mapmode:表示するマップの種類を設定します。 standard または streetview を設定可能です。 何も指定しないと、現在のアプリケーションの設定が使用されます。

  • views:特定のビューのオンとオフを切り替えます。 satellitetraffictransit のいずれかを設定可能です。 コンマ区切りで複数の値を設定できます。 値なしでこのパラメータを指定すると、すべてのビューがクリアされます。

  • 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&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:移動手段です。 drivingtransitbicyclingwalking のいずれかを設定可能です。

次の URL の例では、Google のニューヨーク チェルシー オフィスからジョン・F・ケネディ国際空港までの交通機関でのルートを表示しています。

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

コールバック URL の指定

コールバック URL を指定する場合は、comgooglemaps-x-callback:// URL スキームを使用します。 このスキームは、[x-callback-url 仕様]に従っています。 このスキームで Google Maps for iOS アプリを呼び出すと、アプリの画面の上部にボタンが表示されます。

このボタンをタップすると、指定した URL へのコールバックが実行されます。

comgooglemaps-x-callback:// へのリクエストは、次の形式である必要があります。

comgooglemaps-x-callback://?parameters

パラメータ

x-callback URL スキームは、comgooglemaps:// URL スキームと同じパラメータに加え、次の追加パラメータを受け取ります。 どちらのパラメータも必須です。

  • x-source - x-callback リクエストを送信するアプリケーションの名前です。 短めの名前を指定することが推奨されています。
  • x-success - 完了時に呼び出される URL です。 多くの場合、これは呼び出し元のアプリの URL スキームです。そうすることによって、ユーザーが元のアプリケーションに戻れるようになります。

コールバック URL に応答できるように、呼び出し元のアプリは自身の URL スキームを登録している必要がある点に注意してください。

  1. コールバック リクエストに応答できる URL スキームをアプリケーションで登録済みであることを確認します。

  2. x-source パラメータにコールバック ボタンのラベルを渡します。

  3. x-success パラメータにコールバック URL を渡します。

次の例では、Google Maps for iOS アプリを起動してニューヨークを中心としたマップを表示しています。 その際に、「SourceApp」というラベルのボタンも表示されます。 「SourceApp」ボタンがクリックされると、Google Maps for iOS アプリはコールバックを実行して次の仮の URL スキームを呼び出します。 sourceapp://?resume=true.

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

comgooglemaps:// URL スキームの場合と同様に、デバイス上で Google Maps for iOS アプリが利用可能であることと、x-callback URL スキームがサポートされていることを最初に確認する必要があります。

次のコードを使うと、アプリで URL スキームが利用可能かどうかを確認できます。

Objective-C

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

Swift

UIApplication.sharedApplication().canOpenURL(
    NSURL(string: "comgooglemaps-x-callback://")!)

デザートを検索してからユーザーがアプリに戻れるようにする URL の例を次に示します。

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

アプリへのナビゲーションの追加

ルート案内リクエストを指定して Google Maps for iOS アプリを起動すると、どこで曲がればよいかの指示(ターンバイターン ナビゲーション)をユーザーに対して簡単に表示することができます。 これには、comgooglemaps:// または comgooglemaps-x-callback:// URL スキームを使用します。

注:x-source パラメータで追加されたボタンは、ターンバイターン ナビゲーション UI では表示されません。

次のコード スニペットは、comgooglemaps-x-callback:// スキームを使用してルート案内リクエストを行い、ユーザーの準備が整った際に元のアプリに戻る方法を示しています。 このコードでは、次の処理を行っています。

  1. comgooglemaps-x-callback:// URL スキームが利用可能であるかを確認します。
  2. Google Maps for iOS アプリを起動し、ニューヨーク市のジョン・F・ケネディ国際空港までのルート案内リクエストを行います。 ユーザーの現在地からのルート案内リクエストを行うために、出発地は指定していません。

  3. Google Maps for iOS アプリに「AirApp」というラベルのボタンを追加します。 ボタンのラベルは、x-source パラメータで定義しています。

  4. ユーザーが戻るボタンをクリックすると、仮の URL スキームである sourceapp://, が呼び出されます。

以下に、実際のコードを示します。

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 マップ デスクトップ URL からの Google Maps for iOS アプリの起動

アプリがウェブページ上やデータベース内にある既存の Google マップの URL にアクセスできる場合、次のスキームを使用して Google Maps for iOS アプリで URL を開くことができます。これによって、ユーザーにネイティブ アプリによる最高の操作性を提供することができます。

  1. http:// または https:// スキームを comgooglemapsurl://. で置き換えます。
  2. コールバックを使用する場合は、x-source パラメータと x-success パラメータも含めます。 このスキームは、[x-callback-url 仕様]に従っています。

サポートされている Google マップの URL フォーマット

comgooglemapsurl:// スキームは、次の正規表現に一致する URL をサポートしています。ここで、{TLD} は任意の有効なトップレベル国ドメインです。

わかりやすくするため、改行を行っています。

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

Google Maps アプリの利用可否の確認

最初に、デバイス上で Google Maps for iOS アプリが利用可能であることと、URL スキームがサポートされていることを確認する必要があります。

Objective-C

[[UIApplication sharedApplication] canOpenURL:
   [NSURL URLWithString:@"comgooglemapsurl://"]];

Swift

UIApplication.sharedApplication().canOpenURL(
    NSURL(string: "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

x-callback を指定した東京タワーへのルート案内リクエストの例:

元の Google マップ URL:

http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1

次は、Google Maps for iOS アプリを起動して Google マップの URL(上記)で東京タワーへのルートを指定し、そのマップを表示する例です。

アプリには、「SourceApp」というラベルのボタンも表示されます。 「SourceApp」ボタンがクリックされると、Google Maps for iOS アプリはコールバックを実行して次の仮の URL スキームを呼び出します。 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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。