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