반응형
네이버지도 초기화 할 때는 지도가 표시되어 있는 영역을 아래와 같이 비워주면 된다.
$('#지도를 삽입할 영역의 id').empty();

 

 

◆ 기존 지도를 초기화하지 않고 새 지도를 생성하는 경우


지도를 초기화하지 않고 계속 생성하면 기존 지도가 지워지는 게 아니라 기존 지도 위에 새 지도가 얹어지게 된다.

이 경우 아래 그림과 같이 새 지도의 줌을 컨트롤하거나 할 때 아래의 기존 지도와 겹쳐서 보이게 되는데, 특히 우측 하단의 줌 레벨이 적인 부분을 보면 해당 증상을 쉽게 확인할 수 있다.

     <body>
        <div id="mainMap" style="width:100%;height:700px;"></div>
        <input type="button" value="인천공항" onclick="setMarkers(37.458666, 126.4419679)">
        <input type="button" value="김포공항" onclick="setMarkers(37.5655383, 126.8013282)">
        <input type="button" value="청주공항" onclick="setMarkers(36.7219682, 127.4958842)">
        <input type="button" value="대구공항" onclick="setMarkers(35.899067, 128.639159)">
        <input type="button" value="제주공항" onclick="setMarkers(33.5070772, 126.4934311)">

        <script>
            function setMarkers(lat, lng) {
                var map = new naver.maps.Map('mainMap', {
                    center: new naver.maps.LatLng(lat, lng),
                    zoom: 13,
                    zoomControl : true,
                    zoomControlOptions : {
                        position : naver.maps.Position.TOP_RIGHT,
                        style: naver.maps.ZoomControlStyle.SMALL
                    }
                });
                var marker = new naver.maps.Marker({
                    position: new naver.maps.LatLng(lat, lng),
                    map: map
                });
            }
            $(document).ready(function() {
                setMarkers(37.458666, 126.4419679)
            });
        </script>
    </body>

 

 

 

◆ 기존 지도를 초기화 한 뒤 새 지도를 생성하는 경우


기존 지도를 초기화 한 뒤 새 지도를 생성하는 경우는 아래 그림과 같이 새 지도의 줌을 컨트롤하거나 할 때 겹치는 부분 없이 새 지도만 깔끔하게 표시된다.

     <body>
        <div id="mainMap" style="width:100%;height:700px;"></div>
        <input type="button" value="인천공항" onclick="setMarkers(37.458666, 126.4419679)">
        <input type="button" value="김포공항" onclick="setMarkers(37.5655383, 126.8013282)">
        <input type="button" value="청주공항" onclick="setMarkers(36.7219682, 127.4958842)">
        <input type="button" value="대구공항" onclick="setMarkers(35.899067, 128.639159)">
        <input type="button" value="제주공항" onclick="setMarkers(33.5070772, 126.4934311)">

        <script>
            function setMarkers(lat, lng) {
                $('#mainMap').empty();  //지도영역 초기화

                var map = new naver.maps.Map('mainMap', {
                    center: new naver.maps.LatLng(lat, lng),
                    zoom: 13,
                    zoomControl : true,
                    zoomControlOptions : {
                        position : naver.maps.Position.TOP_RIGHT,
                        style: naver.maps.ZoomControlStyle.SMALL
                    }
                });
                var marker = new naver.maps.Marker({
                    position: new naver.maps.LatLng(lat, lng),
                    map: map
                });
            }
            $(document).ready(function() {
                setMarkers(37.458666, 126.4419679)
            });
        </script>
    </body>

 


[네이버 지도] 로컬환경(localhost)에서 NAVER 지도 API v3 사용 하기

[네이버 지도] NAVER 지도 생성하기 + 예제

[네이버 지도] NAVER 지도의 출력 언어 변경하기 + 예제

[네이버 지도] NAVER 지도에 마커(Marker) 표시하기 (단일,다중마커) + 예제

[네이버 지도] NAVER 지도 이미지를 마커(Marker)로 사용하기 + 예제

[네이버 지도] NAVER 지도 초기화 하기+ 예제

[네이버 지도] AI NAVER API - Maps(지도) 무료 이용량 제공 중단 관련

[네이버 지도] Application Services 상품의 Maps API 사용 방법


글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --

 

반응형