본문 바로가기
개발/JavaScript

[JavaScript] Kakao 지도 API 사용하기(주소로 여러개 마커 표시하기)

by 코딩하는 흰둥이 2025. 3. 11.

이전글

https://greed-yb.tistory.com/335

 

[JavaScript] Kakao 지도 API 사용하기(403 에러 포함)

https://apis.map.kakao.com/web/guide/ 지도 Api 사용하기 위한 가입 및 설정                      개발하고 있는 url 을 입력한다http://localhost:8080/test/mapApi.do 에서 지도Api 를 사용하는데도메인만

greed-yb.tistory.com

 

 

 

 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>여러개 마커 표시하기</title>
    
</head>
<body>
<div class="col-6">
	// map 을 그리기 위한 div
	<div class="map_area  mb20" id="map"></div>
</div>

// layout 에서 설정해두었기 때문에 주석
//<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 사용하세요&libraries=services,clusterer,drawing"></script>
<script>
$(function(){  
			// 지도의 중심 설정 위한 좌표
			var xx = "";
			var yy = "";
			
			// 주소-좌표 변환 객체를 생성합니다
			var geocoder = new kakao.maps.services.Geocoder();

			// 주소로 좌표를 검색합니다
			geocoder.addressSearch('제주 제주시 첨단로 242', function(result, status) {
			    // 정상적으로 검색이 완료됐으면 
			     if (status === kakao.maps.services.Status.OK) {

			    	 xx = result[0].x;
			    	 yy = result[0].y;

			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

			        // 결과값으로 받은 위치를 마커로 표시합니다
			        var marker = new kakao.maps.Marker({
			            map: map,
			            position: coords
			        });

			        // 인포윈도우로 장소에 대한 설명을 표시합니다
			        var infowindow = new kakao.maps.InfoWindow({
			            content: '<div class="subTitleCut" style="width:150px;text-align:center;padding:6px 0;">카카오 본사</div>'
			        });
			        infowindow.open(map, marker);

			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
			        map.setCenter(coords);
			    } 
			}); 
			
			// 위에서 주소를 좌표로 변환한 x,y 로 지도 생성
			var container = document.getElementById('map'); //지도를 담을 영역의 DOM 레퍼런스
			var options = { //지도를 생성할 때 필요한 기본 옵션
				center: new kakao.maps.LatLng(yy, xx), //지도의 중심좌표.
				level: 4 //지도의 레벨(확대, 축소 정도)
			};
			var map = new kakao.maps.Map(container, options); //지도 생성 및 객체 리턴
	    		

			// 여러개 마커 생성 할때 ////////////////////////////////
			
			// 주소-좌표 변환 객체를 생성합니다
			var geocoder = new kakao.maps.services.Geocoder();
			
			// json 형식으로 데이터가 넘어온다고 가정
			var positions = [];
			var obj1 = new Object();
			var obj2 = new Object();
			
			obj1.title = '디지털융합센터';
			obj1.addr = '제주 제주시 첨단로 241';
			
			obj2.title = '보듬이나눔이제주어린이집';
			obj2.addr = '제주 제주시 첨단로8길 17';
			
			positions.push(obj1);
			positions.push(obj2);
			
			
			positions.forEach(function(position){
				// 주소로 좌표를 검색합니다
				geocoder.addressSearch(position.addr, function(result, status) {

				    // 정상적으로 검색이 완료됐으면 
				     if (status === kakao.maps.services.Status.OK) {

				        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

				        // 결과값으로 받은 위치를 마커로 표시합니다
				        var marker = new kakao.maps.Marker({
				            map: map,
				            position: coords
				        });

				        // 인포윈도우로 장소에 대한 설명을 표시합니다
				        var infowindow = new kakao.maps.InfoWindow({
				            content: '<div class="subTitleCut" style="width:150px;text-align:center;padding:6px 0;">'+ position.title +'</div>'
				        });
				        infowindow.open(map, marker);
				    } 
				}); 
	
			})
			// 여러개 마커 생성 할때 ////////////////////////////////

		});				

</script>
</body>
</html>

 

 

카카오 본사를 중심으로 마커 여러개 설정

 

댓글