index.html 4.43 KB
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>다음 지도 API</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script
        src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=9e4f94c8089b558cf9d25a267a86eea9&libraries=clusterer"></script>
</head>

<body>
    <div id="map" style="width:100%;height:100vh;"></div>

    <script>
        // document.querySelector('#find-me').addEventListener('click', geoFindMe);

        var options = {
            enableHighAccuracy: true,
            timeout: 5000,
            maximumAge: 0
        };

        function success(pos) {
            var crd = pos.coords;

            console.log('Your current position is:');
            console.log('Latitude : ' + crd.latitude);
            console.log('Longitude: ' + crd.longitude);
            console.log('More or less ' + crd.accuracy + ' meters.');

            setLocation(crd.latitude, crd.longitude);
        };

        function error(err) {
            console.warn('ERROR(' + err.code + '): ' + err.message);
        };

        function setLocation(lat, lng) {
            // 이동할 위도 경도 위치를 생성합니다 
            var moveLatLon = new kakao.maps.LatLng(lat, lng);

            // 지도 중심을 이동 시킵니다
            map.setCenter(moveLatLon);
        }

        console.log(navigator.geolocation.getCurrentPosition(success, error, options));
        var mapContainer = document.getElementById('map'), // 지도를 표시할 div 
            mapOption = {
                center: new kakao.maps.LatLng(37.350040, 127.108901), // 지도의 중심좌표
                level: 4, // 지도의 확대 레벨 
                mapTypeId: kakao.maps.MapTypeId.ROADMAP // 지도종류
            };

        // 지도를 생성한다 
        var map = new kakao.maps.Map(mapContainer, mapOption);

        // 마커 클러스터러를 생성합니다 
        var clusterer = new kakao.maps.MarkerClusterer({
            map: map, // 마커들을 클러스터로 관리하고 표시할 지도 객체 
            averageCenter: true, // 클러스터에 포함된 마커들의 평균 위치를 클러스터 마커 위치로 설정 
            minLevel: 7 // 클러스터 할 최소 지도 레벨 
        });

        $.get("https://openapi.gg.go.kr/RegionMnyFacltStus?key=145a1e1f1f6a4712876cc7b16c6aeaff&Type=json&CMPNM_NM=편의점&pSize=1000", function (data) {
            var stores = JSON.parse(data);
            var locations = stores.RegionMnyFacltStus[1].row;
            var markers = locations.map(function (element) {
                var marker = new kakao.maps.Marker({
                    position: new kakao.maps.LatLng(element.REFINE_WGS84_LAT, element.REFINE_WGS84_LOGT),
                    map: map // 마커를 표시할 지도 객체     
                });
                var iwContent = '<div style="padding:5px,text-align=center;"></div>'+ element.CMPNM_NM, // 인포윈도우에 표출될 내용으로 HTML 문자열이나 document element가 가능합니다
                    iwPosition = new kakao.maps.LatLng(element.REFINE_WGS84_LAT, element.REFINE_WGS84_LOGT), //인포윈도우 표시 위치입니다
                    iwRemoveable = true; // removeable 속성을 ture 로 설정하면 인포윈도우를 닫을 수 있는 x버튼이 표시됩니다

                // 인포윈도우를 생성하고 지도에 표시합니다
                var infowindow = new kakao.maps.InfoWindow({
                    map: map, // 인포윈도우가 표시될 지도
                    position: iwPosition,
                    content: iwContent,
                    removable: iwRemoveable
                });

                infowindow.open(map, marker); 
                return marker;
            })

            clusterer.addMarkers(markers);
            
        });

        //$.get("https://openapi.gg.go.kr/RegionMnyFacltStus?key=145a1e1f1f6a4712876cc7b16c6aeaff&Type=json&CMPNM_NM=편의점&pSize=1000", function (data) {
           // var stores = JSON.parse(data);
            //var locations = stores.RegionMnyFacltStus[1].row;
            //var markers = $(locations.positions).map(function(i, position){
                //return kakao.maps.Marker({
                    //position :new kakao.maps.LATLANG(position.lat, position.lng)
                //})
            //})
            //clusterer.addMarkers(markers);
        //});



    </script>
</body>

</html>