LoginSignup
5
4

More than 3 years have passed since last update.

Ruby + RESAS-API で観光資源の位置情報(緯度経度)を取得する

Last updated at Posted at 2017-01-16

RESAS-API とは

RESAS-API は RESAS のデータを取得できる WebAPI。
産業、観光、人口などの情報を、都道府県や市区町村などの地域単位で取得することができる。

RESASとは?

地域経済分析システム(以下、RESAS)は、地域に関する官民の様々なデータを搭載し、誰もが分かりやすいように「見える化」したシステムです。

RESAS-API - 地域経済分析システム(RESAS)のAPI提供情報

準備

RESAS-API - 地域経済分析システム(RESAS)のAPI提供情報 https://opendata.resas-portal.go.jp/ にて、 API の利用登録をして、APIキー(リクエストヘッダーX-API-KEYにセットするキー)を取得する。

地域単位の観光資源情報を取得するサンプルコード(Ruby)

Ruby を使用して、 RESAS-API - 観光資源 https://opendata.resas-portal.go.jp/docs/api/v1/tourism/attractions.html の WebAPI をコールして観光資源のデータを取得する。

require 'net/http'
require 'uri'
require 'json'

def get(url, params, headers)

  if params != nil && !params.empty?
    url += '?' + URI.encode_www_form(params)
  end

  uri = URI.parse(url)

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true

  req = Net::HTTP::Get.new(uri.request_uri, headers)
  res = https.request(req)

  json = res.body
  return JSON.parse(json)

end

url = 'https://opendata.resas-portal.go.jp/api/v1/tourism/attractions'
params = {
  'prefCode' => '23',
  'cityCode' => '-',
}
headers = {
  'X-API-KEY' => '<YOUR RESAS API KEY>'
}
data = get(url, params, headers)
puts data
data['result']['data'].each do |v|
  puts "#{v['resourceName']}: #{v['lat']},#{v['lng']}"
end

サンプルコードが出力する内容の一部

一宮コスプレパレード: 35.16802,136.880606
奥山田のしだれ桜: 35.170649,136.88648
秀吉清正記念館: 35.173799,136.853289
常泉寺: 35.174403,136.856094
大野城址(愛西市): 35.166874,136.903691
興正寺五重塔: 35.139385,136.961104
熱田神宮信長塀: 35.125558,136.908963
ハワイアンフェスティバルin吉良: 35.1388,136.861318
観音寺(荒子)多宝塔: 35.140177,136.861479
シデコブシ: 35.0903,136.894774
笠寺観音(笠覆寺): 35.099499,136.936709
富部神社本殿: 35.105232,136.931517
竜泉寺仁王門: 35.222878,136.985017
名古屋城: 35.081623,136.950338
有松地区の町並み: 35.065903,136.972129
日吉神社: 35.175948,137.009124
チェンソーアート競技大会: 34.763794,137.383795

参考資料

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4