住所の距離を調べる方法っての話
それは、ちょっとした話から始まった…
「入力住所の間の距離ってどう取るの?」
具体的には会社の機密事項だが、ま、そんな感じである。
そのままなんだが、住所Aと住所Bの距離… つまりは、何キロ離れているかってのを調べるのが必要になった。
んで?ちょっぴり難しいかなと思ったが、以外と単純だった。
まずは、GoogleMapから住所の座標を取り出します…
方法は、Google MapのAPIをちょっぴり調べてみた…
Google Maps API | Google Developers
https://maps.googleapis.com/maps/api/geocode/json?address=ここに住所をほりこむ&key=YOUR_API_KEY
するってぇーと、json形式でデータが帰ってくる。
{ "results" : [ { ... 略 ... "geometry" : { "location" : { "lat" : 37.4224764, "lng" : -122.0842499 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 37.4238253802915, "lng" : -122.0829009197085 }, "southwest" : { "lat" : 37.4211274197085, "lng" : -122.0855988802915 } } }, "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA", "types" : [ "street_address" ] } ], "status" : "OK" }
はい、シンプル。
次に、座標間の距離を求めるが、三角法(だったかな)にて求める。
算出式をもとめて… と思ったが、ライブラリがあったw
GitHun geolib
GeoLibのgeolib.getDistanceを使えば、シンプルに出ます。
単位の変更はconvertUnitを使えば… kmに出来ると言うことで
使えました、ただ、lat、lngという変数名なので、置換したw
distance = geolib.convertUnit('km', geolib.getDistance( {latitude : location1.lat , longitude : location1.lng}, {latitude : location2.lat , longitude : location2.lng} ));
ま、これで、座標取って、距離が求められるというわけです。
はい、実際の動いている状態です!
座標距離算出サンプルページ
うん、出来ました、JavaScriptのみで作れたのでサーバ側にロジカルを持って行こうかなぁ〜
?住所1&住所2で距離出したらとかも考えようかなぁ〜