地図上から緯度経度を指定して経路探索してみよう!


ヴァル研究所 Advent Calendar 2019 2日目の記事です。今日は緯度経度を指定して経路探索する手順を紹介しようと思います。

背景

お客様との打ち合わせや勉強会等で知らない場所に出かけることは多々あります。その際に困るのが、「目的地の最寄り駅には着いたけど、ここからどう移動すればよいの?」という点です。スマホでの地図を見ながら移動していても、意外と目印になる建物を見つけられず、気が付いたら迷子になっていることもあります。

知らない場所に出かけるとは言っても、目的地の場所(住所)はあらかじめ把握できているので、「ココに行きたい!」とだけ指定し、あとは経路探索サービス等で経路を把握したいものです。そこで今回は地図上で指定した緯度経度をもとに経路探索する手順を見てゆこうと思います。

緯度経度での経路探索

じつは駅すぱあとWebサービスの経路探索APIでは、出発地・目的地に駅名だけでなく、緯度経度も指定することができます。
例えば、平均待ち時間探索には出発駅と到着駅を指定する fromto があり、このパラメータには座標情報として緯度経度を指定することができます。サンプルとして高円寺のヴァル研究所から東京駅の八重洲口付近までの経路探索は以下のようなAPI呼び出しになります。

https://api.ekispert.jp/v1/json/search/course/plain?key=<アクセスキー>&from=35.70606813177083,139.651624325722,wgs84,2000&to=35.68042009453629,139.7690262983716,wgs84,2000

緯度経度を指定する際には、測地系に注意してください。駅すぱあとWebサービスでは日本測地系と世界測地系のどちらかの指定が可能です。デフォルトでは日本測地系となっているため、GoogleマップやOpenStreetMapを扱うような地図ライブラリの測地系(世界測地系)と混在してしまうと、正しく緯度経度の指定が行えないことになります。
世界測地系を指定する場合は、 <緯度>,<経度>,wgs64,<半径(m)> のような形で指定してください。

地図上で緯度経度を指定して経路探索してみる

経路探索APIのパラメータに緯度経度を指定可能であることは分かりましたが、これを人間が毎回指定するのはちょっと大変です。そこで簡単なサンプルとして、地図をクリックすると、その緯度経度を取得して経路探索するアプリを作成してみました。

動作イメージは以下になります。緯度経度を指定して探索する便利さ(?)が見えてくるような気もします。

補足:駅すぱあとWebサービスのアクセスキーを入手する

APIを使用するためにはアクセスキーが必要ですが、個人ユーザ様においてはAmazon SaaSストアからアクセスキーを購入するという方法もあります。SaaSストアでのアクセスキー購入については、過去の記事で紹介していますので興味のある方はご参照ください。

まとめ

駅すぱあとWebサービスで緯度経度を指定した経路探索を行う方法を紹介しました。APIのパラメータとして緯度経度を指定する方法はちょっと大変ですが、地図ライブラリと組み合わせることでユーザにも使いやすい経路探索アプリが作成できそうです。