Rubyで緯度経度から距離を計算するメモ

緯度経度を使って2地点間の距離を算出する必要があったので調べた内容をメモ。
地球は平面じゃないので少々計算式が面倒。
Google Mapの距離測定ツールでチェックしたので概ねOKなはず。

※コードの利用は自己責任でお願いします。

#緯度経度から距離を計算する
def get_distance(lat1, lng1, lat2, lng2)
	y1 = lat1 * Math::PI / 180
	x1 = lng1 * Math::PI / 180
	y2 = lat2 * Math::PI / 180
	x2 = lng2 * Math::PI / 180
	earth_r = 6378140
		
	deg = Math::sin(y1) * Math::sin(y2) + Math::cos(y1) * Math::cos(y2) * Math::cos(x2 - x1)
	distance = earth_r * (Math::atan(-deg / Math::sqrt(-deg * deg + 1)) + Math::PI / 2) / 1000
end