내가 현재 위치한 지역의 날씨를 알고 싶다면 우선,
Geolocation.getCurrentPosition()로 내가 현재 위치하고 있는 지역의 위도와 경도를 알아내야 한다.
navigator.geolocation.getCurrentPosition(success, error, [options])
Geolocation.getCurrentPosition()은 성공했을 때와 실패했을 때 각각 콜백 함수를 받게는데 성공했을 때 받게 되는 콜백함수는 GeolocationPosition object 하나를 입력받게 된다. 이 object에 우리가 원하는 위도와 경도의 정보가 있다. 콘솔로 이 object를 확인해보면 다음과 같다.
여기서 coords는 좌표라는 뜻이고 그 아래에 우리가 원하는 latitude(위도)와 longitude(경도)가 있다.
그 후에 https://openweathermap.org/ 웹사이트로 접속한다.
아래에 보이는 왼쪽에서 두 번째 API로 들어간다.
그리고 Current Weather Data로 들어가면
다음과 같은 API를 얻을 수 있다.
https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}
여기서 lat는 latitude의 약자로 내가 있는 곳의 위도이며,
lon은 longitude의 약자이며 내가 있는 곳의 경도이다.
API key는 웹사이트 로그인 후 이름을 클릭하면 얻을 수 있다.
API에 위도와 경도 그리고 내 API KEY를 넣은 후 주소창에 입력하면 다음과 같은 정보를 얻을 수 있다.
여기서 weather의 main으로 들어가면 날씨 상태를 알 수 있다. 현재는 "Clouds"상태로 구름이 낀 걸 알 수 있고, 아래쪽에 main으로 들어가서 아래에 temp를 보면 현재 온도가 24.11도 인 것을 알 수 있다. 온도 같은 경우에는 원래 화씨로 표기가 되어있는데 API의 끝에 units=metric를 추가하면 섭씨 온도를 볼 수 있다. 제일 아래쪽을 보게되면 name에 내가 위치하고 있는 도시의 이름도 알 수 있다. "Seongnam-si"라고 되어있다.
이처럼 https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}를 통해서
내가 있는 나라의 이름, 지역의 이름, 좌표, 날씨 상태, 온도, 풍속, 기압 등 여러 정보를 얻을 수 있다.