지도를 이동 또는 확대/축소 하거나, 지도 API의 특정 메소드를 호출하여 지도 영역이 변경되는 경우에는 bounds_changed 이벤트가 발생합니다. 이 예제에서는 지도 영역이 변경되었을 때 지도 아래쪽에 변경된 지도 영역의 좌표를 뿌려주고 있습니다. 지도를 움직여서 확인해보세요.
지도 영역이 변경되면 지도 정보가 표출됩니다
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); // 지도를 생성합니다
// 지도가 이동, 확대, 축소로 인해 지도영역이 변경되면 마지막 파라미터로 넘어온 함수를 호출하도록 이벤트를 등록합니다
kakao.maps.event.addListener(map, 'bounds_changed', function() {
// 지도 영역정보를 얻어옵니다
var bounds = map.getBounds();
// 영역정보의 남서쪽 정보를 얻어옵니다
var swLatlng = bounds.getSouthWest();
// 영역정보의 북동쪽 정보를 얻어옵니다
var neLatlng = bounds.getNorthEast();
var message = '<p>영역좌표는 남서쪽 위도, 경도는 ' + swLatlng.toString() + '이고 <br>';
message += '북동쪽 위도, 경도는 ' + neLatlng.toString() + '입니다 </p>';
var resultDiv = document.getElementById('result');
resultDiv.innerHTML = message;
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>영역 변경 이벤트 등록하기</title>
</head>
<body>
<div id="map" style="width:100%;height:350px;"></div>
<p><em>지도 영역이 변경되면 지도 정보가 표출됩니다</em></p>
<p id="result"></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); // 지도를 생성합니다
// 지도가 이동, 확대, 축소로 인해 지도영역이 변경되면 마지막 파라미터로 넘어온 함수를 호출하도록 이벤트를 등록합니다
kakao.maps.event.addListener(map, 'bounds_changed', function() {
// 지도 영역정보를 얻어옵니다
var bounds = map.getBounds();
// 영역정보의 남서쪽 정보를 얻어옵니다
var swLatlng = bounds.getSouthWest();
// 영역정보의 북동쪽 정보를 얻어옵니다
var neLatlng = bounds.getNorthEast();
var message = '<p>영역좌표는 남서쪽 위도, 경도는 ' + swLatlng.toString() + '이고 <br>';
message += '북동쪽 위도, 경도는 ' + neLatlng.toString() + '입니다 </p>';
var resultDiv = document.getElementById('result');
resultDiv.innerHTML = message;
});
</script>
</body>
</html>