位置情報に敏感な今日のユーザーは、場所情報、ルート、ナビゲーションにシームレスにアクセスすることを期待しています。ユーザーは、メッセンジャー アプリ、ローカル コンテキスト探索アプリ、物流および交通プラットフォーム、旅行プランナー、不動産リスティング プラットフォームなど、さまざまなアプリで、場所の詳細をすばやく確認したり、A から B への最適なルートを検索したりする必要があります。デベロッパーは独自のアプリ内エクスペリエンスを構築できますが、Google マップの包括的で使い慣れたインターフェースを活用すると、優れたエクスペリエンスを提供できます。
シームレスなユーザー エクスペリエンスを実現するには、Google マップの URL を適切に構造化することが重要です。間違った URL を使用すると、ユーザーが間違った場所に誘導されたり、具体的な詳細情報ではなく一般的な地図ビューが表示されたり、リンクが機能しなくなったりするなど、ユーザー エクスペリエンスが損なわれます。これにより、ユーザーは不満を抱き、目標を達成できなくなります。 たとえば、有効なマップ URL を使用していても、ユーザーが特定のビジネスの詳細情報を期待しているのに、関連する情報が掲載されていない一般的な地図ビューが表示されることがあります。以下の例をご覧ください。
https://www.google.com/maps/search/?api=1&query=-33.8567%2C151.2152
このマップ URL は、Google マップを開き、緯度と経度に基づいて位置情報を表示する場合に有効です。ただし、特定の場所に関する詳細情報は提供されません。
正確な URL を使用して、アプリと Google マップをシームレスに連携
Google Maps Platform(GMP)には、正確な URL を作成するための主な方法が 2 つあります。API キーを必要とする Places API(新規)と、キーを必要とせず無料で使用できるマップ URL です。次のソリューションは、さまざまなシナリオとユースケースに対応しています。
GMP Places API(新規)の googleMapsUri フィールドまたは googleMapsLinks フィールドを使用する
GMP Places API(新規)は、特定の場所に関する包括的な情報を返します。googleMapsUri
フィールドまたは googleMapsLinks
フィールドをリクエストすると(フィールド マスクで指定)、API レスポンスにプレイス オブジェクトが含まれます。このオブジェクトには、事前フォーマットされた URL が含まれています。この URL を使用すると、Google マップで対応するビュー(場所の詳細ビューなど)を直接開くことができます。
例:
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 を取得するための費用ゼロの方法です。詳しくは、場所 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 は、ユーザーが地図上でスポットをクリックまたはタップしたときに取得することもできます。クリック可能なスポットアイコンの詳細(JavaScript、Android、iOS)
実装
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 マップでは、ターンバイターン ナビゲーションを有効にします。
ストリートビュー パノラマ機能を使用すると、ビューアを起動してストリートビュー画像をインタラクティブなパノラマとして表示できます。
その他の機能と例については、Google マップ プレース 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¶meters
シナリオ 1: 一意の地名の場所の詳細を表示する
https://www.google.com/maps/search/?api=1&query=Sydney%20Opera%20House
次に、名前が一意でない場所について考えてみましょう。この一意でない名前のみで検索するとどうなりますか?次のシナリオを参照してください。
シナリオ 2: 一意でない地名で場所を検索する
https://www.google.com/maps/search/?api=1&query=7-Eleven
地名は一意ではないため、この URL ではビューポート内の近くのセブンイレブンの店舗リストが開きます。ユーザーは特定の店舗を選択して詳細を確認できます。
場所のリストが表示されないようにし、特定の詳細ページに直接アクセスするには、より正確な方法を使用します。次の例をご覧ください。
シナリオ 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 を無料で取得する
プレイス 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 は、ユーザーが地図上でスポットをクリックまたはタップしたときに取得することもできます。クリック可能なスポットアイコンの詳細(JavaScript、Android、iOS)
まとめ
ユーザーに快適なエクスペリエンスを提供するには、正確な場所の詳細情報を提供することが重要です。ユーザーが正しい場所の詳細ページに確実にアクセスできるようにするには、次の推奨形式のいずれかを使用して検索 URL を作成します。
query=PLACE_NAME, ADDRESS
query=PLACE_NAME&query_place_id=PLACE_ID
特定の場所の詳細を表示する場合は、query
パラメータで緯度/経度座標のみを使用しないでください。query=latitude,longitude
、query=PLACE_NAME,latitude,longitude
、query=ADDRESS,latitude,longitude
などの形式では、目的の場所の詳細ページに常に移動できるとは限りません。代わりに、その場所の緯度と経度が表示されます。
マップの URL を使用したカテゴリ検索
カテゴリ検索では、一般的な検索語句を渡すと、指定した場所の近くで条件に一致するリスティングが検索されます。場所を指定しない場合は、Google マップが現在地の近くのリスティングを検索します。
シナリオ 1: 付近の場所の検索
https://www.google.com/maps/search/?api=1&query=Cafe%20near%20Sydney%20Opera%20House%20that%20are%20open%20now
マップの URL を使用して経路を提供する
経路関数は、指定した 2 つ以上の地点間の経路と、距離と所要時間を地図上に表示します。これにより、提供されるルートをデベロッパーがより細かく制御できます。Google マーケティング プラットフォームの「地図の URL とルート」のドキュメントでは、カスタマイズされたルートの URL を作成する手順について詳しく説明しています。
ルート案内の URL 構造:
https://www.google.com/maps/dir/?api=1¶meters
シナリオ 1: ユーザーの現在地から目的地までの最適な経路を検索する
https://www.google.com/maps/dir/?api=1&destination=Flinders%20Station%20Melbourne&travelmode=driving
この URL を指定すると、Google マップが開き、ユーザーの現在地から目的地までのルートが表示されます。
この URL では、origin
は省略されています。origin
を省略すると、パスはデフォルトで、最も関連性の高い開始地点(デバイスの位置情報など)に設定されます(利用可能な場合)。指定されていない場合、生成された地図には、ユーザーが起点の場所を入力できるフォームが表示されます。出発地と目的地の値には、地名、住所、またはカンマ区切りの緯度と経度の座標を指定できます。
travelmode
は省略可能なパラメータです。移動手段を定義します。このパラメータは次のように設定できます。
- 車
- ウォーキング
- 自転車
- オートバイ
- transit
移動モードが指定されていない場合、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 は、ユーザーが地図上でスポットをクリックまたはタップしたときに取得することもできます。クリック可能なスポットアイコンの詳細(JavaScript、Android、iOS)
シナリオ 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 マップ サービスで利用できるわけではありません。また、すべての目的地で利用できるとは限りません。その場合、このパラメータは無視されます。
まとめ
マップの URL を正しく作成することで、ユーザーが必要な正しい情報を迅速かつ効率的に取得できるようにします。
常に目的地を指定し、精度を確保するために可能であれば場所 ID を使用してください。
すぐにナビゲーションを提供する場合は、dir_action=navigate パラメータを指定して、ターンバイターン ナビゲーションをトリガーします。デバイスの位置情報が利用可能で、出発地として使用されている場合(明示的に設定されているか省略されている場合)、ナビゲーションはユーザーの現在地から開始されます。
アプリケーションに適したアプローチを選択する
主な方法は 2 つあります。Places API から提供される事前フォーマットされた URL を使用する方法と、アプリケーションで地図の URL を手動で構築する方法です。それぞれのアプローチには独自のメリットとデメリットがあります。
Places API:
プレイス詳細レスポンスの
googleMapsUri
フィールドとgoogleMapsLinks
フィールドには、すぐに使用できる URL が提供されます。これにより、開発時間が短縮され、URL の形式エラーのリスクが最小限に抑えられます。ルートの構成を制御する機能が制限されます。
googleMapsLinks
は基本的なルート案内を提供しますが、地点や高度なカスタマイズはサポートしていません。また、ルート案内を直接トリガーするのは比較的簡単ではありません。
マップ URL:
より柔軟で詳細な管理が可能になります。デベロッパーは、URL を作成して場所の詳細を表示したり、ルートのさまざまな要素(ウェイポイントの追加、移動手段の指定、ルート案内の開始など)を設定したりできます。
URL パラメータと構造について深い理解が必要。手動で構築する場合は、慎重に行う必要があります。慎重に構築しないと、エラーが発生する可能性があります。
UTM パラメータを使用した地図の URL の改善
デベロッパーがマップの URL をどのように統合しているかを Google が把握しやすくするため、また最適なパフォーマンスを確保するため、URL の作成時に UTM トラッキング パラメータを含めることをおすすめします。utm_source
パラメータと utm_campaign
パラメータを追加すると、Google は使用パターンを分析し、マップ URL プロダクトを改善するために有用なデータを入手できます。
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 ソリューション エンジニア