지도를 확대, 축소하거나 지도를 움직인 이후에 타일 이미지가 모두 완료되면 tilesloaded 이벤트가 발생합니다. 이 예제에서는 타일 이미지가 모두 로드 된 이후에 tilesloaded 이벤트가 발생하면 마커의 위치를 지도중심으로 설정합니다.
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); // 지도를 생성합니다
var marker = new kakao.maps.Marker();
// 타일 로드가 완료되면 지도 중심에 마커를 표시합니다
kakao.maps.event.addListener(map, 'tilesloaded', displayMarker);
function displayMarker() {
// 마커의 위치를 지도중심으로 설정합니다
marker.setPosition(map.getCenter());
marker.setMap(map);
// 아래 코드는 최초 한번만 타일로드 이벤트가 발생했을 때 어떤 처리를 하고
// 지도에 등록된 타일로드 이벤트를 제거하는 코드입니다
// kakao.maps.event.removeListener(map, 'tilesloaded', displayMarker);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>타일로드 이벤트 등록하기</title>
</head>
<body>
<div id="map" style="width:100%;height:350px;"></div>
<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); // 지도를 생성합니다
var marker = new kakao.maps.Marker();
// 타일 로드가 완료되면 지도 중심에 마커를 표시합니다
kakao.maps.event.addListener(map, 'tilesloaded', displayMarker);
function displayMarker() {
// 마커의 위치를 지도중심으로 설정합니다
marker.setPosition(map.getCenter());
marker.setMap(map);
// 아래 코드는 최초 한번만 타일로드 이벤트가 발생했을 때 어떤 처리를 하고
// 지도에 등록된 타일로드 이벤트를 제거하는 코드입니다
// kakao.maps.event.removeListener(map, 'tilesloaded', displayMarker);
}
</script>
</body>
</html>