logo
Published on

Google Maps APIで駅や場所の2点距離(km)を出力する

Authors

今回は、Google maps APIを使って、駅や場所の2点距離(km)を出力する方法について紹介します。

Google Maps APIで駅や場所の2点距離(km)を出力する

以下のRubyコードを実行すると、@now_locationから@listに入っている駅や場所の2点距離(km)を出力します。 なお、@listには改行区切りで駅や場所を入れておくと、@listに入っている駅や場所の2点距離(km)を出力するようになっています。

@now_location と @APIKEY は各自で埋めてください。

require 'net/http'
require 'json'

Encoding.default_external = 'UTF-8'

@now_location = "桜上水駅"

if @list
else
@list="
八王子駅
八王子
"
@list=@list.split("\n").compact.reject(&:empty?)
end

until @list.empty?
  # puts 1
  # @location="八王子"
  @location = @list.pop
  @APIKEY = ""

  url="https://maps.googleapis.com/maps/api/distancematrix/json?origins=#{@now_location}&destinations=#{@location}&mode=walking&language=ja&key=#{@APIKEY}"
  uri = URI(URI.encode(url))
  response = Net::HTTP.get(uri)
  data=JSON.parse(response)

  puts @location + ":" + km= data['rows'][0]['elements'][0]['distance']['text'] ;
  # puts @location + ":" + km= data['rows'][0]['elements'][0]['duration']['text'] ; # => 電車での時間ではなく、徒歩での時間?なので使えない。

end

出力例(桜上水駅からの距離)

神田駅:14.1 km
府中駅:15.1 km
八王子駅:28.8 km
飯田橋駅:11.8 km
中野駅:5.7 km
新大久保駅:8.2 km
大森駅:13.7 km
四ツ谷駅:10.0 km

まとめ

この記事では、Google Maps APIで駅や場所の2点距離(km)を出力する方法について紹介しました。

今回のプログラムは、例えば以下のような場面等で活用することができます。

  • ある駅や場所からの距離を知りたい時
  • 駅や場所の2点距離(km)を出力したいとき
  • また、駅や場所の2点距離(km)を出力することで、その駅や場所の近くにある駅や場所を知ることができます。

以上です。最後まで読んでいただきありがとうございました。