くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

【API】最寄り駅を調べる方法

検索ワードからその地点の最寄り駅のデータを出す必要があり、使い方など調べたので共有

検索ワードから直接最寄り駅までの距離などを調べられるAPIがあると思っていたのですが、考えが甘かったです。調べた感じ、少なくとも無料のものでそういった便利なものはなかったです。
なので、
検索ワードから緯度経度算出➡緯度経度から最寄り駅検索
という手順で追っていきたいと思います。

第一段階:検索ワードから緯度経度取得

Geocoding - 住所から緯度経度を検索
こちらのAPIが便利。

$geo = 'http://www.geocoding.jp/api/?v=1.1&q=' . $_GET['address'];
$geo_xml   = simplexml_load_file($geo);
 
$lat = $geo_xml->coordinate->lat;   //緯度
$lng = $geo_xml->coordinate->lng; //経度

$_GET['address']に指定するワードは一般的な住所のほか、「渋谷ヒカリエ」といったようなランドマーク名でもある程度対応してくれます。Googleさんに感謝。

これで緯度と経度が取得できました。

第二段階:緯度経度から最寄り駅取得

緯度経度から最寄り駅を取得するのは
SimpleAPI vol.2 - 最寄り駅Webサービス & 最寄り駅モバイル地図
が便利。

$simple_api_url = 'http://map.simpleapi.net/stationapi';
$x = '?x=' . $lng;
$y = '&y=' . $lat;

$simple_api_url = $simple_api_url . $x . $y;
$simple_xml = simplexml_load_file($simple_api_url);

下は「渋谷ヒカリエ」を検索した際の結果
f:id:mask0702:20140616192908p:plain
しっかり周辺の駅と駅までの距離などを取得することができてる。