loading

새소식

Langauge/Javascript

[JS] 자바스크립트 카카오 지도 API 활용 코드 구현

  • -
728x90
반응형

fetch 와 callback 을 이용해 필요한 사이트의 데이터를 json파일로 리턴받고 원하는 정보 출력

        const data = fetch("https://api.openweathermap.org/data/2.5/weather?lat=35.158604&lon=126.7956918&units=metric&appid=6edee3c2aa182bc44d18ccb204c98a31");
        data.then(callback1).then(callback2);


        function callback1(response) {
            return response.json();

        }


        function callback2(response) {
            const weather = response.weather;
            const main = weather[0].main;
            const temp = response.main.temp;
            let code = `<h1${main}<h1><h1>${temp}</h1>`;
            document.querySelector('body').innerHTML = code;
        }

 

callback 으로 동작하는 함수들은 일반적으로 non blocking 으로 동작한다.

= 순차적으로 동작하지 않는다. (처리 순서가 송수신 속도(네트워크 처리속도)에 따라 다르다.)

 

kakao developers 에서 지도 api 를 javascript 로 불러와서 구현하기, marker 추가해서 현재 위치한 곳 추가

<body>
    <div id="map" style="width:500px;height:400px;"></div>
    <script type="text/javascript"
        src="//dapi.kakao.com/v2/maps/sdk.js?appkey=// 본인의 앱키 입력 //"></script>

    <script>
        navigator.geolocation.getCurrentPosition(run);
        function run(position) {
            console.log(position);
            const coords = position.coords;
            const lat = coords.latitude;
            const lng = coords.longitude;
            console.log(lat, lng);

            const data = fetch(`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lng}&units=metric&appid=6edee3c2aa182bc44d18ccb204c98a31`);
            data.then(callback1).then(callback2);

            function callback1(a) {
                console.dir(a);
                return a.json();
            }
            function callback2(response) {
                const weather = response.weather;
                const main = weather[0].main;
                const temp = response.main.temp;
                const name = response.name; // 지역명
                let code = `<h1>${main}</h1><h1>${temp}</h1><h1>${name}</h1>`;
                document.querySelector('body').innerHTML += code;
            }

            var container = document.getElementById('map');
            var options = {
                center: new kakao.maps.LatLng(lat, lng),
                level: 3
            };

            var map = new kakao.maps.Map(container, options);
            var markerPosition = new kakao.maps.LatLng(lat, lng);

            var marker = new kakao.maps.Marker({
                position: markerPosition
            });

            marker.setMap(map);
        }
    </script>
</body>

 

 

 

728x90
반응형
Contents

📝 포스팅 주소를 복사했습니다 📝

이 글이 도움이 되었다면 공감 부탁드립니다👍