くわこのpermission denied.

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

GoogleMapAPIから二点間の移動距離とその所要時間を計算する方法

GoogleMapAPIから二点間の移動距離とその所要時間を計算する方法

を調べたのでメモ。

二点間の移動距離とその所要時間をそのまま出してくれるものが見当たらなかったので、出発地と目的地の緯度経度を求めて▶︎移動距離とその所要時間を算出するという二段階に分けて行います。

第一段階:出発地と目的地の緯度経度を求める

前回に引き続き、http://www.geocoding.jp/ のAPIにお世話になります。

$start = '渋谷ヒカリエ';
$goal = '表参道駅';

$geo_start = 'http://www.geocoding.jp/api/?v=1.1&q=' . $start;
$geo_goal = 'http://www.geocoding.jp/api/?v=1.1&q=' . $goal;

$geo_start_xml = simplexml_load_file($geo_start);
$geo_goal_xml = simplexml_load_file($geo_goal);

$lat_start = $geo_start_xml->coordinate->lat;
$lng_start = $geo_start_xml->coordinate->lng;

$lat_goal = $geo_goal_xml->coordinate->lat;
$lng_goal = $geo_goal_xml->coordinate->lng;

第二段階:求めた緯度経度から、二点間の移動距離とその所要時間を求める。

次はGoogleMapAPI(https://developers.google.com/maps/documentation/distancematrix/?hl=ja#DistanceMatrixRequests)にお世話になります。

$g_url = 'http://maps.googleapis.com/maps/api/distancematrix/xml?mode=walking&sensor=false'
$origins = '&origins=' . $lat_start . ' ' . $lng_start;
$destinations = '&destinations=' . $lat_goal . ' ' . lng_goal;

$g_url .= $origins . $destinations;

$res = simplexml_load_file($g_url);

これで$retの中に移動距離とその所要時間や出発地・目的地の住所などが入っていますので、取り出して使えると思います。

ちなみに上の$g_urlの&mode=の中身をwalkingはdriving,bicyclingに変更することができ、drivinngなら車、bicyclingなら自転車での場合の移動距離とその所要時間を取得することができます。

便利∠( ゚∀゚)/

※上のコードはそのまま実行はしていないので、タイピングミスなどでエラーが出るかもしれません。コピペする場合は各自対応をお願いします。