[kakao지도] 지도 중심좌표 부드럽게 이동하기

반응형

 

 

KAKAO지도, 지도 중심좌표 부드럽게 이동

 

 

  kakao 지도 부드럽게 이동하기

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>지도 이동시키기</title>
    
</head>
<body>
<div id="map" style="width:100%;height:350px;"></div>
<p>
    <button onclick="setCenter()">지도 중심좌표 이동시키기</button> 
    <button onclick="panTo()">지도 중심좌표 부드럽게 이동시키기</button> 
</p>

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 사용하세요"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div 
    mapOption = { 
        center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
        level: 3 // 지도의 확대 레벨
    };

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

function setCenter() {            
    // 이동할 위도 경도 위치를 생성합니다 
    var moveLatLon = new kakao.maps.LatLng(33.452613, 126.570888);
    
    // 지도 중심을 이동 시킵니다
    map.setCenter(moveLatLon);
}

function panTo() {
    // 이동할 위도 경도 위치를 생성합니다 
    var moveLatLon = new kakao.maps.LatLng(33.450580, 126.574942);
    
    // 지도 중심을 부드럽게 이동시킵니다
    // 만약 이동할 거리가 지도 화면보다 크면 부드러운 효과 없이 이동합니다
    map.panTo(moveLatLon);            
}        
</script>
</body>
</html>

 카카오 지도 LIB 설명서 중, function panTo() { } 라는 함수가 있다.

 

map.setCenter()와 다르게,  map.panTo()는 특정 조건이 맞는다면 지도의 이동 애니메이션을 줄 수 있는 함수이다.

 

 

카카오 라이브러리가 제공하는 기능

 panTo 함수는 움직임을 좋게 만드는 만큼 아쉬움이 있었다.

속도가 조금 더 느리다면, 뭔가 그럴듯한 Effect를 남길 것 같았다.

 

var moveLatLon = new kakao.maps.LatLng(lat, lon);

map.panTo(moveLatLon, {
    animate: {
        duration: 550
    }
});

그리고 조사한 결과, panTo에도 option이 있었다.

animate라는 옵션인데, duration의 숫자를 조절한다면 속도를 조절할 수 있다. 1000 당 1초이다.

반응형

댓글

Designed by JB FACTORY