지역별 날씨는 Rails 및 Livedoor Weather 웹 서비스로 표시
개시하다
지난 기사에서는 루비로부터 날씨 정보를 얻을 수 있었다.
Ruby에서 Weather Hacks로 날씨를 얻었어요.
처리 및 Rails를 사용하여 웹에 날씨 정보를 표시할 수 있습니다.
컨디션
macOS Mojave(10.14.4)
Ruby 2.6.3
Rails 5.2.3
가져오기 처리
다음 순서에 따라 각 지점의 날씨 정보를 얻습니다.
macOS Mojave(10.14.4)
Ruby 2.6.3
Rails 5.2.3
가져오기 처리
다음 순서에 따라 각 지점의 날씨 정보를 얻습니다.
표시할 사이트 이름 읽기
텔레비전의 전국 날씨에서 자주 보이는 각 지점의 json 파일을 제작한다.
main_city.json
{
"city":[
{
"name": "釧路"
},
{
"name": "旭川"
},
・・・略・・・
{
"name": "那覇"
},
{
"name": "石垣島"
}
이것을 읽을 처리를 만듭니다. def read
file_path = File.expand_path('config/main_city.json', __dir__)
@city_list = []
File.open(file_path, 'r') do |text|
@parse_text = JSON.parse(text.read)
@parse_text['city'].each { |city|
@city_list.push(city['name'])
}
end
end
Livedoor Weather Web Service에서 제공하는 도시와 1을 사용하여 각 지점의 id를 꺼냅니다.
제공된 사이트의 ID를 json 파일로 씁니다.
location_id.json
{
"area":
[
{
"name": "北海道",
"prefs":[
{
"name": "北海道",
"city":[
{
"name": "稚内",
"id": "011000"
},
{
"name": "旭川",
"id": "012010"
},
・・・略・・・
{
"name": "石垣島",
"id": "474010"
},
{
"name": "与那国島",
"id": "474020"
}
]
}
]
}
]
}
이 json 파일을 읽고 장소별 id를 가져옵니다.단순히 포환으로 돌릴 뿐이다.
더 좋은 방법이 있을 것 같은데 지금 이 방법으로 해요.
def read_main_location_id
parse_text = read_location_id
location_list = LocationList.new
reader = MainCityReader.new
reader.read
area = parse_text['area']
for area_no in 0..area.count - 1
prefs = area[area_no]['prefs']
for pref_no in 0..prefs.count - 1
city = prefs[pref_no]['city']
for city_no in 0..city.count - 1
city_name = city[city_no]['name']
if reader.contain?(city_name)
location = Location.new
location.area_name = area[area_no]['name']
location.pref_name = prefs[pref_no]['name']
location.location_name = city_name
location.id = city[city_no]['id']
location_list.add(location)
end
end
end
end
return location_list
end
private
def read_location_id
file_path = File.expand_path('config/location_id.json', __dir__)
parse_text = ''
File.open(file_path, 'r') do |text|
parse_text = JSON.parse(text.read)
end
return parse_text
end
각지의 날씨 정보를 얻다
id로 URL을 만듭니다.
BASE_URL = 'http://weather.livedoor.com/forecast/webservice/json/v1?city='.freeze
def create(location_id)
return BASE_URL + location_id.to_s
end
URL에서 날씨 정보를 가진 json 파일을 가져옵니다. def read(url)
response = URI.open(url)
@parse_text = JSON.parse(response.read)
end
이후 제이슨에서 날씨 정보를 얻는 것은 끝났다.결과 표시
전국 5/24 날씨를 간단히 보여준 결과다.
5월 24일은 전국이 맑은 날씨인 것 같아요.
금후
다음으로 하고 싶은 것은 다음과 같은 세 가지다.
다음으로 하고 싶은 것은 다음과 같은 세 가지다.
Reference
이 문제에 관하여(지역별 날씨는 Rails 및 Livedoor Weather 웹 서비스로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/M-Yamashii/items/cfceaca26abf0c1f96b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)