通常、ユーザーがスポット(地図上の場所)に車で向かう場合、実際には駐車場やアクセス ポイントなどの近くの場所へのナビゲーションを必要とします。空港やショッピング モールに行く必要があるドライバーを想像してみてください。ドライバーが空港に向かう際に、空港施設の中心ではなく、ターミナルや降車所に行こうとしています。同様に、車で移動するユーザーには、ショッピング モールの隣にある駐車場の方がはるかに適している場合があります。この場合、ドライバーを案内するアプリやサービスを開発する場合は、まずドライバーが向かう場所を特定し、その場所の近くにある目的地をドライバーに提示します。このアプローチにより、Google Maps Platform の位置情報データを活用した少量ながらスマートな開発作業により、お客様により良いサービスを提供し、お客様の時間を大切にしていることを示すことができます。
Places API と Directions API を順番に、または組み合わせて使用して、目的地の隣に駐車する適切な場所を特定する方法を説明します。このソリューションは、目的地に近づいて運転中に駐車する場所を見つけるために、不確実性と複数のインタラクションを取り除くことを目的としています。これらのケースがどのように実装されるかについて、2 つの例を見てみましょう。
例 1 - 駐車場のない観光スポット
ここでは、道路側と直接接続していない場所を選択して、個別にルートを取得する必要があります。目的地はパリのノートルダムで、出発点としてGare de l’Est 駅(48.87697775149635, 2.3592245646755)を使用します。
運転手はノートルダムから北へ約 16 分走った場所で駅を出ます。ノートルダムは、橋でアクセスできる島にある有名な観光スポットです。一方通行の道路もあり、近くに大きな駐車場はありません。これは興味深い課題になるでしょう。
Places API リクエスト
この Places API リクエストの例では、「テキスト検索」を使用してノートルダムを検索します。詳しくは、デベロッパー向けドキュメントをご覧ください。これらの例の「YOUR_KEY」は、Google Cloud コンソールで有効にした Google Maps Platform Places API と Directions API の API キーです。詳しくは、Google Maps Platform のスタートガイドをご覧ください。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014®ion=fr&key=YOUR_KEY
上記のリクエストに対するレスポンスで返される緯度と経度は次のようになります。経度の座標:
"results" : [ { "formatted_address" : "Notre Dame, Paris", "geometry" : { "location" : { "lat" : 48.8527288, }, ...
ご覧のとおり、座標はノートルダムの正確な位置を示しています。
|
|
デベロッパーやサービス プロバイダの方は、ドライバーに「ノートルダム近郊の駐車場を探していますか?」というメッセージを自動的に表示することをおすすめします。ユーザー エクスペリエンスはデバイスや画面によって異なりますが、少しすれば消えるポップアップ テキストがあればよいでしょう。ノートルダム大聖堂の近くの駐車場を検索するには、Places API のテキスト検索で、タイプ「parking」と半径「300」のパラメータを設定します。この例では、ノートルダム大聖堂から 300 m 以内の駐車場が結果にバイアスされます。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635®ion=fr&type=parking&radius=300&key=YOUR_KEY
最初の結果は「Parking Saemes Maubert-Lagrange」(48.850591、2.3486436)です。次のセクションで Directions API リクエストを行う際に、この場所を使用します。
Directions API リクエスト
駅からノートルダム近郊の駐車場までのルートを検索するには、Directions API リクエストを実行する必要があります。出発地と目的地のパラメータを設定するだけです。その他のオプションについては、デベロッパー向けドキュメントをご覧ください。
https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY
通常、Direction API レスポンスには複数のルート候補が含まれます。各ルートには複数の「区間」があり、それらには移動距離と座標を示す複数の「ステップ」が含まれています。車で到達できる最終的な座標を確認するには、選択したルートの最後の区間の最後のステップの「end_location」フィールドを使用します。
この場所は、一見するとおすすめの場所ではないと思われるかもしれませんが、地図や Google ストリートビューで見ると、ノートルダム大聖堂から徒歩 6~7 分という非常に近い場所にあります。
駐車場からノートルダムまでの徒歩ルート
例 1 の概要
ご覧のとおり、自動車の駐車場を検索するには、いくつかの API 呼び出しと、ドライバーに候補を表示するだけで済みます。一方通行の道路を走り回ったり、混雑した観光地で駐車場を探したりする必要がないため、ユーザーは時間を節約できます。要約すると、次の API リクエストを実行しました。
- ノートルダムの座標を検索する Places API リクエスト
- これらの座標から 300 メートル以内の駐車場を検索する Places API リクエスト
- 駐車場までのルートを検索する Directions API リクエスト
例 2 - 大規模な空港のターミナルへの案内
"types" : [ "airport", "point_of_interest", "establishment" ],
ただし、大きな空港を利用したことのある人なら誰でも、間違った場所に到着した場合、ターミナル間の移動にかなりの時間がかかるということをご存じでしょう。この例では、検索結果のタイプが「空港」であるため、ロンドン ヒースロー空港の場所(51.47016927594547, -0.45432767852489075)を使用して「ターミナル」を検索するクエリを自動的にフォローアップすると便利です。この例では、検索半径が 3,000 メートルに制限されているオプションも示されています。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075®ion=gb&key=YOUR_KEY&radius=3000
上記のクエリでは、ターミナルと、そのターミナルの個々の集荷ポイントのリストが返されます。検索結果のリストから、「ロンドン ヒースロー空港ターミナル 5」とそのプレイス ID を確認できます。
"place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",
「place_id」パラメータを使用すると、任意の座標ではなく、ある場所に到達しようとしていることを Directions API に伝えることができます。
https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY
前述の例と同様に、JSON レスポンスのすべてのステップを読み取ると、ルートの最後の部分と終点の緯度と経度(51.47079979999999、-0.4896765)を確認できます。
例 2 の概要
前の例と同様に、改善されたガイダンスをドライバーに提供するための開発作業は非常に少なく、ドライバーに節約される時間のメリットは簡単に測定できます。以下のリクエストを行いました。
- ヒースロー空港を見つけるための Places API リクエスト
- ヒースロー空港の座標に近いすべてのターミナルを検索するための Places API リクエスト
- ターミナル 5 へのルートを取得する Directions API リクエスト
まとめ
ご覧のとおり、車で旅行する顧客にプレミアム サービスを提供するために必要な開発作業はかなり少ないため、顧客のニーズについてどのように考えているかを簡単に示すことができます。
開発目的では、利用可能な多くのライブラリとツールを使用して、お客様向けのサービスを構築できます。一般公開されている Google Maps Platform の GitHub リポジトリをご覧ください。
次のアクション
プリンシパル作成者
Mikko Toivanen | Google Maps Platform ソリューション エンジニア