住所の距離を調べる方法っての話

それは、ちょっとした話から始まった…
「入力住所の間の距離ってどう取るの?」
具体的には会社の機密事項だが、ま、そんな感じである。
そのままなんだが、住所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で距離出したらとかも考えようかなぁ〜