728x90
const API_KEY = "";
function onGeoOk(position){
const lat = position.coords.latitude;
const lng = position.coords.longitude;
console.log("You live in", lat, lng);
const url = `https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lng}&appid=${API_KEY}&units=metric`;
fetch(url)
.then(response => response.json())
.then(data => {
const weather = document.querySelector("#weather span:first-child");
const city = document.querySelector("#weather span:last-child");
city.innerText = data.name;
weather.innerText = `${data.weather[0].main} / ${data.main.temp}`;
console.log(data);
});
}
function onGeoError(){
alert("Can't find you. No weather for you.");
}
navigator.geolocation.getCurrentPosition(onGeoOk,onGeoError);
우선 현재 위치를 가져오기위해 navigator.geolocation.getCurrentPosition 메서드를 사용합니다.
해당 메서드는 위치 가져오기를 성공했을때와, 실패했을 때에 대한 두개의 콜백함수를 가지는데
첫번째는 GeolocationPosition 객체를 유일한 매개변수로 받는 콜백 함수입니다.
두번째는 GeolocationPositionError (en-US) 객체를 유일한 매개변수로 받는 콜백 함수입니다.
위치 가져오기를 성공했을 때인 onGeoOk 콜백메서드에서 위도와 경도를 해당 메서드의 매개변수인 position에서 참조합니다.
그 후 fetch api를 사용하여 openweather api에 접근하고 리턴한 데이터를 파싱합니다.
'JavaScript' 카테고리의 다른 글
[Javascript] 알림창 종류알아보기 (Alert , Confirm, Prompt) (0) | 2022.04.30 |
---|---|
[Javascript] Kakao 지도 Javascript API 를 사용해서 지도 표시 및 마커 찍기 (2) | 2022.04.29 |
[Javascript] 마우스 이벤트 (0) | 2022.04.18 |
[Javascript] 정규식으로 전화번호 형식 확인하기 (0) | 2022.04.13 |
[Javascript] 사용자 PC에 연결 되어있는 미디어 디바이스 정보 가져오기 (0) | 2022.04.10 |