지형정보, 교통정보, 자전거도로 정보를 체크박스 선택에 따라 지도타입을 겹쳐보이게 표시합니다.
지적편집도 정보 보기 지형정보 보기 교통정보 보기 자전거도로 정보 보기
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>