본문 바로가기
국비교육기관/플젝

3차 플젝 map 태그와 area

by 밀키스 2021. 8. 6.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="cpath" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	#img-layer{
		z-index:3;
	}
	#rec-layer{
		z-index:3;
	}
	#di_img{
		position: absolute;
	}
	canvas{
		position: absolute;
	}
	#tes{
		position: absolute;
		z-index:2;
	}
	#tes_div{
		border: 2px solid blue;
		position: absolute;
		width: 200px;
		height: 200px;
		z-index:3;
	}
</style>
</head>
<body>
	<h1>테스트 파일</h1>
	<div id="div_img">
		<div id="tes_div"></div>
		<img id="tes" src="${cpath }/resources/img/test2_blurr.png" usemap="#Map">
	</div>
	<map name="Map" id="Map">
		<area shape="rect" coords="318,5,354,21" tabindex="1">
		<area shape="rect" coords="354,5,419,21" tabindex="2">
		<area shape="rect" coords="553,10,582,23" tabindex="3">
		<area shape="rect" coords="588,9,629,23" tabindex="4">
		<area shape="rect" coords="100,979,159,993" tabindex="5" onclick="alert('asd')">
	</map>
	<script src="${cpath }/resources/js/jquery-3.3.1.min.js"></script>
	<script>
		var img_c = new Image;
		img_c.src = '/controller/resources/img/test2_blurr.png';
		var img = document.getElementById("tes");
		//$("div").append("<canvas id='img-layer' width='"+img.offsetWidth+"' height='"+img.offsetHeight+"'></canvas>")
		//$("div").append("<canvas id='rec-layer'  width='"+img.offsetWidth+"' height='"+img.offsetHeight+"'></canvas>")
		//$("canvas").append("<img src='/controller/resources/img/test2_blurr.png'>")
		/* var canvas_img = document.getElementById('img-layer');
		var ctx = canvas_img.getContext('2d'); */
		//var canvas_rec = document.getElementById('rec-layer');
		//var ctx_rec = canvas_rec.getContext('2d');
		/* img_c.onload = function() {
		    ctx.drawImage(img_c, 0, 0);
		  };
		ctx.strokeStyle = 'blue';
		ctx.strokeRect(431,979,504-431,996-979); */
		
		$.ajax({
		  type : 'post',
		  url : 'http://127.0.0.1:5000/',
		  data : "1",
		  dataType : 'json',
		  success : function(res) {
			  $.each(res.fields, function(a,b){
			  //document.write(res.fields[a].inferText+"<br>")
			  //$("ul").append("<li>"+res.fields[a].inferText+"</li>")
			  var cor = res.fields[a].boundingPoly.vertices
			  $('map').append("<area onblur='this.focus()' autofocus shape='rect' coords='"+cor[0].x+","
					  +cor[0].y+","+cor[2].x+","+cor[2].y+"' onclick='alert("+a+")'"+
					  ""+">")
				  })
		  },
		  error : function() {
		  	alert('요청 실패쓰');
		  }
		})
		function getLoc() {
			var x = event.offsetX;
			var y = event.offsetY;
			alert("현재좌표는 : "+x+" / "+y);
			var w = img.offsetWidth;
			var h = img.offsetHeight;
		}
		function test(){
			var x = event.offsetX;
			var y = event.offsetY;
		}
		
		function boxing(ctx_rec, cor){
			return ctx_rec.strokeRect(cor[0].x,cor[0].y,cor[2].x-cor[0].x,cor[2].y-cor[0].y)
		}
		//const fs = require('fs');
		//fs.readFile('test.json')
		
	</script>
</body>
</html>

 

 

map 태그는 img 태그와 함께 사용

area는 해당 img 태그에서 어떤 링크를 걸어줄 영역을 표시하고플 때 사용한다.

 

canvas 태그의 경우 일종의 스케치북을 만들고 그 위에 이미지를 넣거나 그림을 그릴 수 있다.

 

 

원래는 canvas 태그 2개를 통해 하나는 이미지 하나는 그리는 용도로 layer를 다르게 주어 해결하려 했으나,

 

layer가 밑에 있어버리니까 이미지 태그에서 onmouse 관련 옵션이 안먹었다...

 

뭐 나중에 정리하자

반응형

댓글