駅すぱあとAPI(Webサービス)の駅座標データがおかしい場合の対処法
2018-01-10
現在、単体で最寄り駅検索が出来るAPIは存在していません(多分)。
しかし、日本全国の駅情報を取得できるAPIや、座標間の距離検索を出来るAPIは存在しています。
ということで、これらを組み合わせれば良い感じの最寄り駅検索API作れるんじゃないの?と暇つぶしに作ってみたのですが、思ったより引っかかったので共有しておこうと思います。
駅すぱあとAPIの利用方法
先に駅すぱあとAPIを使うための方法を書いておきます。
駅すぱあとAPIは、YahooやGoogleのAPIと違い、申請から利用開始までにある程度の時間がかかります。理由は、駅すぱあとAPIのアクセスキーは自動発行ではないからです。駅すぱあと運営元のヴァル研究所が、申請内容を確認して手動で承認していると思われます。
駅すぱあとAPIフリープラン申し込みフォーム
https://ekiworld.net/free_provision/index.php
なお、対象のAPIを利用するドメインや利用目的を記載する欄がありますが、私は実験用だったのでドメインにlocalhost的なことを書きましたが、申請は通りました。日本語でも問題ないので、「ローカルでテストした後、追ってドメインをお伝えします」とか書いても良いと思います。名前やメールアドレスが怪しいとかでなければ通ると思います。
駅座標データがおかしい場合
本題です。
「駅座標データを取得してみたら、なんかずれてる」という症状が発生した人向けの解説です。
駅すぱあとAPIの座標データは、デフォルトが「日本測地系」になっています。
日本測地系とは「明治新政府が採用した準拠楕円体に基づく経緯度の体系」だそうです。
対して、「世界測地系」というものがあります。
世界測地系とは「GPS時代の世界標準の準拠楕円体に基づく経緯度の体系」だそうです。
勘の良い方はお気づきかと思いますが、GoogleMapなど、世の中に一般的に出回っている位置情報を利用したアプリケーションは「世界測地系」基準で作成されています。ということで、駅すぱあとAPIを利用して座標データを取得しても、デフォルト設定では「世界測地系」基準のアプリケーションには利用できない座標が返ってきてしまいます。
ということで、取得する座標データを「世界測地系」に変更する必要があります。
普通にマニュアルに書かれていますが、パラメーター「gcs」を利用します。
例)
http://api.ekispert.com/v1/xml/station?key=xxxxxxxxxx&gcs=wgs84&code=20001
こんな感じでやれば、「世界測地系」の座標を取得することが出来るようになります。
また、日本測地系、詳しく知りたい人以下のサイトを参照してください
解説1 世界測地系と日本測地系の違い – 日本測地系による地域メッシュコードについて
私にはよくわかりません。
駅すぱあとAPI最高!
控えめに言って、駅すぱあとAPIは最高です。
フリープランでも十分なデータが利用できるので、位置情報系の何かをやりたいと考える開発者の人はぜひ利用しましょう。そして、儲かったら有料のスタンダードプランを利用してお布施しましょう。私はまだお金になるようなサービスに利用していないので、何かしら利益を出せるようになったら考えます。
駅すぱあとAPIは利用制限を付けないというかなりロックな姿勢を取っています。開発者に「分散処理とかで過度な負荷をかけないでね」とお願いするに留めています。普通に考えてヤバいです。自分が運営者なら絶対出来ません。
変な使い方をするとフリープランが消滅してしまうかもしれないので、「儲かった人は有料版を利用」「過度な負荷をかけないよう自制」を、一ユーザーとしてお願いしたく思います。