본 내용은 혼자서 공부하기 위한 용도로 사용된 것으로 비효율적일 수 있으며 실용적이지 않을 수 있습니다.
다음 지도 API 기능을 적용시켜 볼 것이다. 적용할 기능으로는
지도 클릭 시 해당 위치에 아이콘으로 표시, 해당 위치의 경도, 위도 값 가져오기이다.
map.js에 해당 코드를 추가한다.
/webapp/js/daumAPI/map.js
function fn_clickSetting(){ var clickMarker=null; //노선 마커와 위치 클릭 마커 var clickIcon = new daum.maps.MarkerImage( "./image/location.png", new daum.maps.Size(32,32)); //지도에 클릭 이벤트를 등록합니다 // 지도를 클릭하면 마지막 파라미터로 넘어온 함수를 호출합니다 daum.maps.event.addListener(map, 'click', function(mouseEvent) { if(clickMarker!=null){ clickMarker.setMap(null); } // 클릭한 위도, 경도 정보를 가져옵니다 var latlng = mouseEvent.latLng; var resultDiv1 = document.getElementById('lat'); resultDiv1.value = Math.floor(latlng.getLat()*100000)/100000; var resultDiv2 = document.getElementById('lng'); resultDiv2.value = Math.floor(latlng.getLng()*100000)/100000; clickMarker = new daum.maps.Marker({ position: new daum.maps.LatLng(resultDiv1.value,resultDiv2.value), image:clickIcon, clickable:false }); clickMarker.setMap(map); }); }
//배열에 추가된 마커들을 지도에 표시하거나 삭제하는 함수입니다. function setMarkers(map){ for(var i=0; i<markers.length;i++){ markers[i].setMap(map); } }
- 해당 코드는 위에서 말했던 클릭 시의 기능들을 위해 선언한 함수이다.
클릭 할 시 그에 대한 정보를 담을 마커 변수를 선언한다. 그 밑의 clickIcon 은 클릭 시 표시되는 아이콘 이미지에 대한 변수이다.다음API에서 제공하는 클릭 이벤트를 선언하고 지도로부터 위도, 경도를 변수에 불러와 <input type="text"> 태그의 id 값이 "lat,lng"였던 부분의 값을 채워주고, 클릭 마커 변수에 저장 한 뒤 지도에 해당 위치에 마커 변수를 매핑해주는 역할을 한다.
/WEB-INF/jsp/node_info.jsp
<script type="text/javascript"> $("#node_find").addClass("selected"); fn_clickSetting(); </script>
해당 코드에 fn_clickSetting() 이 부분을 함수를 호출한다.
지금까지 잘 따라왔다면 밑과 같은 화면을 볼 수 있을 것이다.
지도에서 가장 기본적인 기능은 완료하였고 이제는 해당 지역의 정류소 GPS 값, 정보 또는 버스 노선의 정보 등을 필요로 한다. 이 API 값을 받아오는 작업은 다음 포스팅에서 하겠다.