「2点間距離API」を使う

Pocket

Yahoo!デベロッパーネットワークで「2点間距離API」というものを見つけました。
地図上の2点の緯度経度を与えるとその間の距離を算出するAPIです。
今まではサイン、コサインを使って複雑な計算をしていましたが、これを使えば簡単にできそうです。

YOLP(地図):2点間距離API - Yahoo!デベロッパーネットワーク

サンプルは次の通りです。PHPです。
東京駅から大阪駅までの距離を求めます。
使うときは、登録して自分のアプリケーションIDを取得する必要があります。

$points[0] = array(139.766084, 35.681382);//東京駅
$points[1] = array(135.494977, 34.701909);//大阪駅

$appid = "{アプリケーションID}";
$output = "json";
$coordinates = implode(",", $points[0]) . "%20" . implode(",", $points[1]);

$url = "http://distance.search.olp.yahooapis.jp/OpenLocalPlatform/V1/distance";
$url .= "?coordinates=" . $coordinates;
$url .= "&appid=" . $appid;
$url .= "&output=" . $output;

$json = file_get_contents($url);
$arrs = json_decode($json, TRUE);

print $arrs["Feature"][0]["Geometry"]["Distance"];

ちょっと引っかかったのは、座標の指定方法です。
「東経カンマ北緯スペース東経カンマ北緯」とするのですが、サンプルを真似すると次の通りになります。
「coordinates=139.766084,35.681382 135.494977,34.701909」
しかしこれだとエラーになります。スペースは「%20」とする必要があるので次の通りになります。
「coordinates=139.766084,35.681382%20135.494977,34.701909」

実行すると距離がキロメートル単位で表示されます。

こうなると座標も自動的に取得したいところですが、Yahoo!には飲食店などの位置を取得するAPIはありますが、駅など公共機関を取得するAPIがありません(あるのかもしれませんが見つかりませんでした)。
Googleは「東京駅」から座標を取得することができますので、GoogleとYahoo!を組み合わせる、ということになりそうです。

[ 2014年9月21日 | カテゴリー: PHP | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報