DrawingManager 활용
그리기 관리자를 이용하여 지도에 공간객체를 추가하는 예제입니다.
* 원하는 도형 버튼을 클릭 후 지도 위를 클릭하여 도형을 추가합니다. 폴리곤/폴리라인의 경우, 클릭으로 꼭지점을 추가하고 더블클릭으로 그리기를 종료합니다.
DrawingManager 활용
그리기 관리자를 이용하여 지도에 공간객체를 추가하는 예제입니다.
* 원하는 도형 버튼을 클릭 후 지도 위를 클릭하여 도형을 추가합니다. 폴리곤/폴리라인의 경우, 클릭으로 꼭지점을 추가하고 더블클릭으로 그리기를 종료합니다.
// 지도를 생성합니다.
var map = new routo.maps.Map("map", {
center: { lat: 37.507009, lng: 127.0586339 }, // 지도 초기 위치
zoom: 18, // 지도 로딩 시 최초 표시 레벨
});
// 그리기 관리자를 생성하고 지도에 추가합니다.
var drawingManager = new routo.maps.drawing.DrawingManager({
map: map,
});
// 그리기 모드를 설정합니다.
function setDrawingMode(drawingMode) {
var buttons = document.getElementsByTagName('button');
Array.prototype.forEach.call(buttons, function(element, index, array){
element.classList.remove('active');
})
var buttonDrawingMode = document.querySelectorAll('button.' + drawingMode);
if(buttonDrawingMode && buttonDrawingMode[0]){
buttonDrawingMode[0].classList.add('active');
}
drawingManager.setDrawingMode(drawingMode);
}
// 모든 도형을 지웁니다.
function deleteMarkers() {
drawingManager.clear();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>그리기</title>
<style>
html,
body {
margin: 0;
padding: 0px 15px 10px 15px;
width: 100%;
height: 100%;
}
.map {
width: 100%;
height: 400px;
position: relative;
}
button.active {
background: #4c4c4c;
color: #fff;
}
</style>
</head>
<body>
<h2>그리기</h2>
<hr />
<p>
그리기 관리자를 이용하여 지도에 공간객체를 추가하는 예제입니다.
</p>
<div id="map" class="map"></div>
<div>
<button class="marker" onclick="setDrawingMode('marker');">마커 그리기</button>
<button class="circle" onclick="setDrawingMode('circle');">원 그리기</button>
<button class="polygon" onclick="setDrawingMode('polygon');">폴리곤 그리기</button>
<button class="polyline" onclick="setDrawingMode('polyline');">폴리라인 그리기</button>
<button class="rectangle" onclick="setDrawingMode('rectangle');">사각형 그리기</button>
<button onclick="deleteMarkers();">모든 도형 지우기</button>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js""></script>
<script src="https://api.routo.com/v2/maps/map?key={APIKEY}"></script>
<script>
// 지도를 생성합니다.
var map = new routo.maps.Map("map", {
center: { lat: 37.507009, lng: 127.0586339 }, // 지도 초기 위치
zoom: 18, // 지도 로딩 시 최초 표시 레벨
});
// 그리기 관리자를 생성하고 지도에 추가합니다.
var drawingManager = new routo.maps.drawing.DrawingManager({
map: map,
});
// 그리기 모드를 설정합니다.
function setDrawingMode(drawingMode) {
var buttons = document.getElementsByTagName('button');
Array.prototype.forEach.call(buttons, function(element, index, array){
element.classList.remove('active');
})
var buttonDrawingMode = document.querySelectorAll('button.' + drawingMode);
if(buttonDrawingMode && buttonDrawingMode[0]){
buttonDrawingMode[0].classList.add('active');
}
drawingManager.setDrawingMode(drawingMode);
}
// 모든 도형을 지웁니다.
function deleteMarkers() {
drawingManager.clear();
}
</script>
</body>
</html>