지형정보, 교통정보, 자전거도로 정보를 체크박스 선택에 따라 지도타입을 겹쳐보이게 표시합니다.
지적편집도 정보 보기 지형정보 보기 교통정보 보기 자전거도로 정보 보기
var mapContainer = document.getElementById('map'), // 지도를 표시할 div mapOption = { center: new kakao.maps.LatLng(37.57319, 126.96658), // 지도의 중심좌표 level: 7 // 지도의 확대 레벨 }; var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 // 지도 타입 정보를 가지고 있을 객체입니다 // map.addOverlayMapTypeId 함수로 추가된 지도 타입은 // 가장 나중에 추가된 지도 타입이 가장 앞에 표시됩니다 // 이 예제에서는 지도 타입을 추가할 때 지적편집도, 지형정보, 교통정보, 자전거도로 정보 순으로 추가하므로 // 자전거 도로 정보가 가장 앞에 표시됩니다 var mapTypes = { terrain : kakao.maps.MapTypeId.TERRAIN, traffic : kakao.maps.MapTypeId.TRAFFIC, bicycle : kakao.maps.MapTypeId.BICYCLE, useDistrict : kakao.maps.MapTypeId.USE_DISTRICT }; // 체크 박스를 선택하면 호출되는 함수입니다 function setOverlayMapTypeId() { var chkTerrain = document.getElementById('chkTerrain'), chkTraffic = document.getElementById('chkTraffic'), chkBicycle = document.getElementById('chkBicycle'), chkUseDistrict = document.getElementById('chkUseDistrict'); // 지도 타입을 제거합니다 for (var type in mapTypes) { map.removeOverlayMapTypeId(mapTypes[type]); } // 지적편집도정보 체크박스가 체크되어있으면 지도에 지적편집도정보 지도타입을 추가합니다 if (chkUseDistrict.checked) { map.addOverlayMapTypeId(mapTypes.useDistrict); } // 지형정보 체크박스가 체크되어있으면 지도에 지형정보 지도타입을 추가합니다 if (chkTerrain.checked) { map.addOverlayMapTypeId(mapTypes.terrain); } // 교통정보 체크박스가 체크되어있으면 지도에 교통정보 지도타입을 추가합니다 if (chkTraffic.checked) { map.addOverlayMapTypeId(mapTypes.traffic); } // 자전거도로정보 체크박스가 체크되어있으면 지도에 자전거도로정보 지도타입을 추가합니다 if (chkBicycle.checked) { map.addOverlayMapTypeId(mapTypes.bicycle); } }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>지도 타입 바꾸기2</title> </head> <body> <div id="map" style="width:100%;height:350px;"></div> <p> <input type="checkbox" id="chkUseDistrict" onclick="setOverlayMapTypeId()" /> 지적편집도 정보 보기 <input type="checkbox" id="chkTerrain" onclick="setOverlayMapTypeId()" /> 지형정보 보기 <input type="checkbox" id="chkTraffic" onclick="setOverlayMapTypeId()" /> 교통정보 보기 <input type="checkbox" id="chkBicycle" onclick="setOverlayMapTypeId()" /> 자전거도로 정보 보기 </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(37.57319, 126.96658), // 지도의 중심좌표 level: 7 // 지도의 확대 레벨 }; var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 // 지도 타입 정보를 가지고 있을 객체입니다 // map.addOverlayMapTypeId 함수로 추가된 지도 타입은 // 가장 나중에 추가된 지도 타입이 가장 앞에 표시됩니다 // 이 예제에서는 지도 타입을 추가할 때 지적편집도, 지형정보, 교통정보, 자전거도로 정보 순으로 추가하므로 // 자전거 도로 정보가 가장 앞에 표시됩니다 var mapTypes = { terrain : kakao.maps.MapTypeId.TERRAIN, traffic : kakao.maps.MapTypeId.TRAFFIC, bicycle : kakao.maps.MapTypeId.BICYCLE, useDistrict : kakao.maps.MapTypeId.USE_DISTRICT }; // 체크 박스를 선택하면 호출되는 함수입니다 function setOverlayMapTypeId() { var chkTerrain = document.getElementById('chkTerrain'), chkTraffic = document.getElementById('chkTraffic'), chkBicycle = document.getElementById('chkBicycle'), chkUseDistrict = document.getElementById('chkUseDistrict'); // 지도 타입을 제거합니다 for (var type in mapTypes) { map.removeOverlayMapTypeId(mapTypes[type]); } // 지적편집도정보 체크박스가 체크되어있으면 지도에 지적편집도정보 지도타입을 추가합니다 if (chkUseDistrict.checked) { map.addOverlayMapTypeId(mapTypes.useDistrict); } // 지형정보 체크박스가 체크되어있으면 지도에 지형정보 지도타입을 추가합니다 if (chkTerrain.checked) { map.addOverlayMapTypeId(mapTypes.terrain); } // 교통정보 체크박스가 체크되어있으면 지도에 교통정보 지도타입을 추가합니다 if (chkTraffic.checked) { map.addOverlayMapTypeId(mapTypes.traffic); } // 자전거도로정보 체크박스가 체크되어있으면 지도에 자전거도로정보 지도타입을 추가합니다 if (chkBicycle.checked) { map.addOverlayMapTypeId(mapTypes.bicycle); } } </script> </body> </html>