駅すぱあと API BLOG

駅すぱあと APIの開発チームが作るブログです。

周辺駅の取得時に同一路線の駅を除外できるようになりました

f:id:ekispert_api:20200514193117j:plain

こんにちは、駅すぱあとWebサービス開発チームの山崎です。

この度「駅すぱあとWebサービス」では、緯度経度、住所からの周辺駅検索機能をアップデートしました!

「駅すぱあとWebサービス」では、緯度経度、住所を利用して、その周辺に存在する駅を調べたり、経路探索の出発地や到着地に緯度経度、住所を指定して経路を調べたりすることができます。

この機能では、指定の緯度経度、住所から距離が近い順番に駅を取得します。

しかし、緯度経度、住所によっては、同じ路線の鉄道駅や同じ系統のバス停が密集しており、周辺駅を取得して経路探索をしても、同じような経路のパターンになってしまい、欲しい経路が取得できない、という状況が発生してしまうことがありました。

今回、このような問題を解決するために、緯度経度、住所から周辺駅を取得する場合に、同じ路線の駅が重複しないように周辺駅を取得する機能をリリースしました。

どんな機能なのか

例えば以下のような場所を指定して周辺駅を取得します。

f:id:ekispert_api:20200519101659p:plain

© OpenStreetMap contributors

同一路線の駅を除外しない場合には以下の周辺駅のリスト(上位5駅)となります。

坂下(港北区)/横浜市営バス
榎本/横浜市営バス
武相台/横浜市営バス
菊名橋/臨港バス
菊名橋/横浜市営バス

同一路線の駅を除外した場合には以下の周辺駅リストとなります。

坂下(港北区)/横浜市営バス
菊名橋/臨港バス
妙蓮寺
菊名
菊名駅前/臨港バス

同じ系統のバス停が除外され、鉄道駅が結果に含まれています。

注意点について

こちらの機能を使う場合には以下の点にご注意ください。

注意点1:半径を指定する必要があります

注意点2:最大取得件数が10件までとなります

注意点1については、半径の指定がない場合は最も近い駅を1件取得する、という仕様のためです。 1件なので、同一路線かどうかの判定はそもそも必要なくなります。

注意点2については、レスポンス速度を落とさないためになります。

半径に大きな値が指定された場合、半径内の周辺駅を全て取得しようとすると駅数が膨大になり、レスポンス速度が低下してしまうことがあります。 レスポンス速度を落とさずに結果を返すことを大事にし、最大取得件数に上限を設けました。

具体的には

下記の機能に「excludeSameLineStation」というパラメータが追加されます。

  • 住所からの周辺駅(/address/station)
  • 緯度経度からの周辺駅(/geo/station)
  • 経路探索(/search/course/extreme)

パラメータが「true」の場合には、同一路線の駅は1件のみとし、他は候補から除外します。 デフォルトは「false」になります。

サンプルリクエストは以下のようになります。

https://api.ekispert.jp/v1/xml/geo/station?key=アクセスキーを入力してください&stationCount=5&geoPoint=緯度,経度,半径&excludeSameLineStation=true

おわりに

今回は、周辺駅の取得機能のアップデートのご紹介でした。 今回ご紹介したパラメータが対応する機能のドキュメントもぜひご覧ください。


駅すぱあとWebサービスを使ってみるには?

駅すぱあとWebサービス スタンダードプランは90日間無料でお試しできます。 こちらから申し込みして気軽に触ってみてください!

ekiworld.net