Google マップの URL または Places API を使用して、Google マップのプレイスの詳細とルートをユーザーに案内する

位置情報を認識する今日の環境では、ユーザーは場所の情報、ルート、ナビゲーションにシームレスにアクセスできることを期待しています。メッセンジャー アプリ、ローカル コンテキスト ディスカバリー アプリ、物流 / 輸送プラットフォーム、旅行プランナー、不動産リスティング プラットフォームなど、ユーザーは多くの場合、場所の詳細をすばやく確認したり、A 地点から B 地点までの最適なルートを見つけたりする必要があります。デベロッパーはアプリ内エクスペリエンスを独自に構築できますが、Google マップの包括的で使い慣れたインターフェースを活用することで、優れたエクスペリエンスを提供できます。

シームレスなユーザー エクスペリエンスを実現するには、Google マップの URL を適切に構成することが不可欠です。URL が正しくないと、ユーザー エクスペリエンスが損なわれ、ユーザーが間違った場所に移動したり、詳細な情報ではなく一般的な地図が表示されたり、リンク切れが発生したりする可能性があります。これにより、ユーザーは不満を感じ、目標を達成できなくなります。たとえば、有効な Google マップの URL を使用していても、特定のビジネスの詳細情報を期待していたユーザーが、関連情報のない一般的な地図ビューに移動してしまうことがあります。以下の例をご覧ください。

https://www.google.com/maps/search/?api=1&query=-33.8567%2C151.2152

このマップ URL は、Google マップを開いて、緯度と経度に基づいて位置情報を表示するのに有効です。ただし、特定の場所に関する詳細はユーザーに提供されません。

緯度と経度のみを使用して検索する
緯度と経度のみを使用して検索する

正確な URL を使用してアプリケーションと Google マップをシームレスに連携させる

Google マップで場所の詳細ページを開く
固有の場所名を含むマップ URL を使用すると、ユーザーは Google マップ上のその場所の詳細ページに移動します

Google Maps Platform(GMP)では、正確な URL を作成するための 2 つの主な方法が用意されています。API キーが必要な Places API(新版)と、無料でキーを必要としないマップ URL です。次のソリューションは、さまざまなシナリオとユースケースに対応しています。

GMP Places API(新版)は、特定の場所に関する包括的な情報を返します。googleMapsUri フィールドまたは googleMapsLinks フィールドをリクエストすると(フィールド マスクで指定)、API レスポンスにプレイス オブジェクトが含まれます。このオブジェクトには、Google マップで対応するビュー(場所の詳細ビューなど)を直接開くために使用できる、事前フォーマット済みの URL が含まれています。

例:

Place Details リクエスト

curl -X GET -H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: YOUR_API_KEY" \
-H "X-Goog-FieldMask: googleMapsUri,googleMapsLinks" \
https://places.googleapis.com/v1/places/ChIJ3S-JXmauEmsRUcIaWtf4MzE

Place Details レスポンス:

{
    "googleMapsUri": "https://maps.google.com/?cid=3545450935484072529",
    "googleMapsLinks": {
        "directionsUri": "https://www.google.com/maps/dir//''/data=!4m7!4m6!1m1!4e2!1m2!1m1!1s0x6b12ae665e892fdd:0x3133f8d75a1ac251!3e0",
        "placeUri": "https://maps.google.com/?cid=3545450935484072529",
        "writeAReviewUri": "https://www.google.com/maps/place//data=!4m3!3m2!1s0x6b12ae665e892fdd:0x3133f8d75a1ac251!12e1",
        "reviewsUri": "https://www.google.com/maps/place//data=!4m4!3m3!1s0x6b12ae665e892fdd:0x3133f8d75a1ac251!9m1!1b1",
        "photosUri": "https://www.google.com/maps/place//data=!4m3!3m2!1s0x6b12ae665e892fdd:0x3133f8d75a1ac251!10e5"
    }
}

上記の例の ChIJ3S-JXmauEmsRUcIaWtf4MzE は、シドニー オペラハウスのプレイス ID です。プレイス ID は、Google プレイスのデータベースおよび Google マップで、特定の場所を一意に識別するテキスト表記の ID です。

プレイス ID を無料で取得する

プレイス ID をプログラムで取得するには、Places API: Text Search(ID のみ)機能を使用します。これは、プレイス ID を取得するための費用のかからない方法です。場所 IDPlace API(新版)リクエストの詳細を確認する。

Places API Text Search(ID のみ)リクエスト:

curl -X POST -d '{"textQuery" : "Sydney Opera House"}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'

Places API Text Search(ID のみ)のレスポンス:

{
  "places": [
    {
      "id": "ChIJ3S-JXmauEmsRUcIaWtf4MzE"
    }
  ]
}

ユーザーが地図上のスポットをクリックまたはタップしたときに、プレイス ID を取得することもできます。クリック可能な POI アイコンの詳細(JavaScriptAndroidiOS

実装

Places API を使用する場合、デベロッパーはレスポンスから googleMapsUri フィールドまたは googleMapsLinks フィールドを抽出して、Google マップ アプリで対応するビューを起動したり、アプリがインストールされていない場合はブラウザで起動したりできます。

機能 説明
directionsUri ユーザーの現在地からこの場所までの経路を表示する Google マップを開くリンク
placeUri この場所の Google マップのプレイス詳細ページを開くリンク
writeAReviewUri この場所のクチコミ作成ページを Google マップで開くためのリンク
reviewsUri この場所のクチコミ ページを Google マップで開くためのリンク
photosUri この場所の写真ページを Google マップで開くためのリンク

デベロッパー向けガイダンスを確認して、今すぐこの機能をお試しください。

マップの URL を活用する

マップ URL を使用すると、プラットフォームをまたいで使用できる共通の URL を作成して、Google マップを起動したり、検索を行ったり、ルートやナビゲーションを取得したり、地図ビューやパノラマ画像を表示したりできます。URL の構文は、使用しているプラットフォームに関係なく同じです。マップ URL を使用するために Google API キーは必要ありません。

使用可能なマップ アクションは次のとおりです。

  • 検索機能は、Google マップ アプリを起動するか、アプリがインストールされていない場合はブラウザを起動して、特定の場所のピンを表示するか、一般的な検索を実行して地図を起動し、結果を表示します。

  • 経路案内機能は、Google マップ アプリを起動するか、アプリがインストールされていない場合はブラウザを起動して、地点間の経路を表示したり、モバイル デバイスの Google マップでターンバイターン ナビゲーションを有効にしたりします。

  • ストリートビュー パノラマ関数を使用すると、ビューアを起動して、ストリートビュー画像をインタラクティブなパノラマとして表示できます。

その他の関数と例については、GMP Maps URL のデベロッパー向けドキュメントをご覧ください。

ここでは、マップ URL の 2 つの重要な機能について詳しく説明します。

  • Google マップに場所の詳細を表示する: このセクションでは、Google マップに特定の場所の詳細を表示する URL を作成する方法について説明します。また、Place ID と正確なクエリを使用して、名前が一意でない場所を扱う方法についても詳しく説明します。

  • マップ URL を使用して経路を提供する: このセクションでは、複数の経由地を含む経路やターンバイターン ナビゲーションなど、地点間の経路を提供する URL を作成する方法について説明します。

Google マップに場所の詳細を表示する

Search 関数は、場所の検索を完了するために 2 つのパラメータ(query(必須)と query_place_id(省略可))を受け取ります。

query パラメータはすべての検索リクエストで必須です。地名、緯度と経度の座標(カンマ区切り)、一般的な検索語句を指定できます。

検索 URL の構造:

https://www.google.com/maps/search/?api=1&parameters

シナリオ 1: 一意の地名の場所の詳細を表示する

https://www.google.com/maps/search/?api=1&query=Sydney%20Opera%20House
この例では、地名のみが指定されています。この URL を開くと、シドニー オペラハウスの詳細ページが開きます。

Google マップで場所の詳細ページを開く
場所の名前を検索して場所の詳細を表示する

次に、一意でない名前の場所について考えてみましょう。この一意でない名前のみで検索するとどうなりますか?次のシナリオを参照してください。

シナリオ 2: 一意でない地名で場所を検索する

https://www.google.com/maps/search/?api=1&query=7-Eleven

場所の名前は一意ではないため、この URL を開くと、ビューポート内の近くのセブンイレブンの場所のリストが表示されます。ユーザーは特定の店舗を選択して、詳細を確認できます。

Google マップで場所のリストのページを開く
固有でない名前を検索するためのプレイス リストページ

場所のリストを回避して特定の詳細ページに直接アクセスするには、より正確な方法を使用します。次の例をご覧ください。

シナリオ 3: 一意でない地名の場所の詳細を表示する

一般的な地名の場合、単純な名前検索で場所のリストが返されることがよくあります。特定の詳細ページに直接リンクするには、次のいずれかの方法を使用します。

方法 1: 地名と住所を使用した正確なクエリを使用する

https://www.google.com/maps/search/?api=1&query=7-Eleven%2C37%20Swanston%20St%2C%20Melbourne%20Australia

この URL では、query パラメータは場所名、住所の形式になっています。これにより、検索を絞り込み、目的の場所に直接リンクできます。

方法 2: 場所 ID を使用する

プレイス ID は、Google プレイスのデータベースおよび Google マップで、特定の場所を一意に識別する ID です。

https://www.google.com/maps/search/?api=1&query=7-Elevan&query_place_id=ChIJGcmcg7ZC1moRAOacd3HoEwM

ここで、ChIJGcmcg7ZC1moRAOacd3HoEwM は特定の場所の一意のプレイス ID です。query パラメータは引き続き必要ですが、Google マップで場所 ID が見つからない場合にのみ使用されます。

シナリオ 4: 緯度と経度の座標とプレイス ID を使用して場所の詳細を表示する

プレイス ID を使用すると、Google マップに場所の詳細情報が表示されます。

https://www.google.com/maps/search/?api=1&query=-33.8567%2C151.2152&query_place_id=ChIJ3S-JXmauEmsRUcIaWtf4MzE
緯度と経度、プレイス ID を使用した Place Detail ページ
緯度と経度、プレイス ID を使用した Place Detail ページ

プレイス ID を無料で取得する

プレイス ID をプログラムで取得するには、Places API: Text Search(ID のみ)機能を使用します。これは、プレイス ID を取得するための費用のかからない方法です。場所 ID と Place API(新版)リクエストの詳細をご確認ください。

Places API Text Search(ID のみ)リクエスト:

curl -X POST -d '{"textQuery" : "Sydney Opera House"}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: places.id'
'https://places.googleapis.com/v1/places:searchText'

Places API Text Search(ID のみ)のレスポンス:

{
  "places": [
    {
      "id": "ChIJ3S-JXmauEmsRUcIaWtf4MzE"
    }
  ]
}

ユーザーが地図上のスポットをクリックまたはタップしたときに、プレイス ID を取得することもできます。クリック可能な POI アイコンの詳細(JavaScriptAndroidiOS

まとめ

正確な場所の詳細を提供することは、ユーザー エクスペリエンスを向上させるうえで非常に重要です。ユーザーが正しいスポットの詳細ページにアクセスできるようにするには、次の推奨形式のいずれかを使用して検索 URL を作成します。

  • query=PLACE_NAME, ADDRESS
  • query=PLACE_NAME&query_place_id=PLACE_ID

特定の場所の詳細を表示することが目的の場合は、query パラメータで緯度/経度座標のみを使用しないでください。query=latitude,longitudequery=PLACE_NAME,latitude,longitudequery=ADDRESS,latitude,longitude などの形式では、目的のスポットの詳細ページに一貫して移動することはできません。代わりに、その場所の緯度と経度が表示されます。

マップの URL を使用したカテゴリ検索

カテゴリ検索では、一般的な検索キーワードを渡すと、Google マップは指定した場所の近くで条件に一致するリスティングを見つけようとします。場所が指定されていない場合、Google マップは現在地の近くのリスティングを検索します。

シナリオ 1: 付近の場所の検索

https://www.google.com/maps/search/?api=1&query=Cafe%20near%20Sydney%20Opera%20House%20that%20are%20open%20now
カテゴリ検索 - 付近の場所
カテゴリ検索 - 近隣の場所

マップの URL を使用して経路を表示する

ルート機能では、地図上の 2 つ以上の指定された地点間の経路と、距離や移動時間が表示されます。これにより、デベロッパーは提供されるルートをより細かく制御できます。GMP の Maps URLs Directions のドキュメントには、カスタマイズされたルートの URL を作成する手順が詳しく記載されています。

ルートの URL 構造:

https://www.google.com/maps/dir/?api=1&parameters

シナリオ 1: 現在地から目的地までの最適な経路を検索する

https://www.google.com/maps/dir/?api=1&destination=Flinders%20Station%20Melbourne&travelmode=driving

この URL を開くと Google マップが開き、ユーザーの現在地からの運転ルートが表示されます。

この URL では、origin が省略されています。origin が省略されている場合、パスは、利用可能な場合はデバイスの位置など、最も関連性の高い開始位置にデフォルト設定されます。結果の地図には、ユーザーが出発地を入力できるフォームが表示されます。出発地と目的地の値には、地名、住所、またはカンマ区切りの緯度と経度の座標を指定できます。

travelmode は省略可能なパラメータです。移動手段を定義します。このパラメータは次のように設定できます。

  • ウォーキング
  • 自転車
  • オートバイ
  • transit

travelmode が指定されていない場合、Google マップには、指定されたルートやユーザー設定に最も関連性の高いモードが 1 つ以上表示されます。

デベロッパーは、origin_place_id パラメータと destination_place_id を使用してプレイス ID を指定することもできます。場所 ID を使用すると、正しい場所にリンクされる可能性が最も高くなります。

プレイス ID を無料で取得する

プレイス ID をプログラムで取得するには、Places API: Text Search(ID のみ)機能を使用します。これは、プレイス ID を取得するための費用のかからない方法です。場所 ID と Place API(新版)リクエストの詳細をご確認ください。

Places API Text Search(ID のみ)リクエスト:

curl -X POST -d '{"textQuery" : "Sydney Opera House"}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: places.id'
'https://places.googleapis.com/v1/places:searchText'

Places API Text Search(ID のみ)のレスポンス:

{
  "places": [
    {
      "id": "ChIJ3S-JXmauEmsRUcIaWtf4MzE"
    }
  ]
}

ユーザーが地図上のスポットをクリックまたはタップしたときに、プレイス ID を取得することもできます。クリック可能な POI アイコンの詳細(JavaScriptAndroidiOS

ユーザーの現在地からのルート
ユーザーの現在地からのルート

シナリオ 3: ターンバイターン方式のナビゲーションを提供する

https://www.google.com/maps/dir/?api=1&destination=Flinders%20Station%20Melbourne&travelmode=driving&dir_action=navigate

URL で dir_action=navigate を設定すると、ユーザーの現在地(デバイスの位置情報)が利用可能で、出発地として使用されている場合(明示的に指定されているか、出発地パラメータが省略されている場合に暗黙的に使用されている)、Google マップがターンバイターン ナビゲーション モードで起動します。それ以外の場合は、経路のプレビューが表示されます。

dir_action=navigate が設定され、次の条件を満たす場合、ターンバイターン方式のナビゲーションが起動します。

  • オリジンが指定されており、ユーザーの現在地に近い
  • 出発地が省略され、ユーザーの現在地が利用可能である

ルートのプレビューは、次のときに起動します。

  • dir_action=navigate が設定されていません
  • dir_action=navigate が設定され、オリジンが指定されているが、オリジンがユーザーの現在地から離れている
  • dir_action=navigate が設定され、オリジンが省略され、ユーザーの現在地が利用できない

なお、Google マップ ウェブなどの一部の Google マップ サービスや、一部の目的地間ではナビゲーションを利用できません。このような場合、このパラメータは無視されます。

ターンバイターン方式ナビ 経路のプレビュー
ターンバイターン方式のナビゲーション
ルートのプレビュー

まとめ

Google マップの URL を正しく作成することで、ユーザーがすばやく効率的に必要な情報を入手できるようになります。

  • 常に目的地を指定し、精度を保証するために可能な限り場所 ID を使用する

  • すぐにナビゲーションを開始することが目的の場合は、dir_action=navigate パラメータを含めて、ターンバイターンのナビゲーションをトリガーします。デバイスの位置情報が利用可能で、出発地として使用されている場合(明示的に設定されているか省略されているかに関わらず)、ナビゲーションはユーザーの現在地から開始されます。

アプリケーションに適したアプローチを選択する

主な方法は 2 つあります。Places API が提供する事前フォーマット設定済みの URL を利用する方法と、アプリケーションで Google マップの URL を手動で作成する方法です。それぞれにメリットとデメリットがあります。

Places API:

  • プレイスの詳細レスポンスの googleMapsUri フィールドと googleMapsLinks フィールドには、すぐに使用できる URL が用意されています。これにより、開発時間を短縮し、URL 形式のエラーのリスクを最小限に抑えることができます。

  • ルートの構成を制御する機能が少ない。googleMapsLinks は基本的なルート案内を提供しますが、経由地や高度なカスタマイズはサポートしていません。また、ターンバイターン ナビゲーションを直接トリガーするのは比較的簡単ではありません。

マップ URL:

  • 柔軟性と制御性が向上します。デベロッパーは、場所の詳細を表示する URL を作成し、経由地の追加、移動手段の指定、ターンバイターン ナビゲーションの開始など、ルートのさまざまな側面を設定できます。

  • URL パラメータと構造について深く理解する必要があります。手動で構築すると、慎重に行わないとエラーが発生する可能性が高くなります。

UTM パラメータを含む Google マップの URL の改善

デベロッパーがマップ URL をどのように統合しているかを Google がより正確に把握し、最適なパフォーマンスを確保できるようにするため、URL の作成時に UTM トラッキング パラメータを含めることをおすすめします。utm_source パラメータと utm_campaign パラメータを追加すると、使用パターンを分析して Maps URLs プロダクトを改善するために役立つデータが提供されます。

utm_source パラメータには、アプリケーションの名前を使用します。utm_campaign パラメータには、ユーザーの意図したアクション(「location_sharing」、「place_details_search」、「directions_request」など)を反映する必要があります。

たとえば、UTM パラメータを含む URL は次のようになります。

https://www.google.com/maps/search/?api=1&query=Sydney+Opera+House&query_place_id=ChIJ3S-JXmauEmsRUcIaWtf4MzE&utm_source=YourAppName&utm_campaign=place_details_search

これらのパラメータを常に使用することで、改善すべき領域を特定し、問題をより効果的にトラブルシューティングし、最終的にすべてのユーザーに優れたエクスペリエンスを提供できるようになります。

次のステップ

参考資料:

寄稿者

主な著者:

Teresa Qin | Google Maps Platform ソリューション エンジニア