1+ <!DOCTYPE html>  
2+ < html > 
3+ < head > 
4+ < meta  http-equiv ="Content-Type " content ="text/html; charset=utf-8 "> 
5+ < title > simpleMap</ title > 
6+ < script 
7+ src ="https://apis.openapi.sk.com/tmap/jsv2?version=1&appkey=l7xxcf0148b42f5f490e8cf1f6401a5b00f7 "> </ script > 
8+ < script  type ="text/javascript "> 
9+ var  map ; 
10+ var  bounds ; 
11+ // 페이지가 로딩이 된 후 호출하는 함수입니다. 발급받은 Appkey 
12+ function  initTmap ( )  { 
13+ // map 생성 
14+ // Tmapv2.Map을 이용하여, 지도가 들어갈 div, 넓이, 높이를 설정합니다. 
15+ map  =  new  Tmapv2 . Map ( "map_div" ,  {  // 지도가 생성될 div 
16+  center : new  Tmapv2 . LatLng ( 37.556710940157124 , 126.9758901257519 ) ,  // 지도 초기 좌표 
17+ width  : "100%" ,  // 지도의 넓이 
18+ height  : "700px" ,  // 지도의 높이 
19+  zoom : 18 , 
20+  zoomControl  : true , 
21+ scrollwheel  : true 
22+ } ) ; 
23+  map . addListener ( "click" ,  onClick ) ;  // 이벤트의 종류와 해당 이벤트 발생 시 실행할 함수를 리스너를 통해 등록합니다 
24+ 
25+  // 지도에 두 지점 간 거리 측정 컨틀롤러 추가 
26+  /* 
27+ new Tmapv2.extension.MeasureDistance({ 
28+ map: map 
29+  });*/ 
30+ 
31+  // Tmapv2.extension.KeyboardControl를 사용하여 지도를 키보드로 컨트롤 할 수 있는 기능을 추가합니다. 
32+ var  keyboardControl  =  new  Tmapv2 . extension . KeyboardControl ( ) ; 
33+ keyboardControl . setMap ( map ) ; 
34+ 
35+  // 두 지점간의 거리를 계산합니다. 
36+ //distance = marker1.getPosition().distanceTo(marker2.getPosition()); 
37+ 
38+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
39+ /* 
40+  //EPSG:3857 좌표계를 생성합니다. 
41+ var epsg3857 = new Tmapv2.Point(14135906, 4518356); 
42+ // WGS84 좌표계로 변환합니다 
43+ var wgs84 = Tmapv2.Projection.convertEPSG3857ToWGS84GEO(epsg3857); 
44+ 
45+  // 마커를 생성합니다. 
46+ var marker1 = new Tmapv2.Marker({ 
47+ position: wgs84, 
48+ icon: 'http://tmapapis.sktelecom.com/upload/tmap/marker/pin_b_m_a.png', 
49+ map: map 
50+  }); 
51+ 
52+ // 지도를 이동시킵니다. 
53+ map.setCenter(wgs84); 
54+ */ 
55+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
56+ 
57+  var  content  = "<div style=' position: relative; border-bottom: 1px solid #dcdcdc; line-height: 18px; padding: 0 35px 2px 0;'>" + 
58+ "<div style='font-size: 12px; line-height: 15px;'>" + 
59+ "<span style='display: inline-block; width: 14px; height: 14px; background-image: url('http://tmapapi.sktelecom.com/resources/images/common/footer_logo.png'); vertical-align: middle; margin-right: 5px;'></span>SK T-타워" + 
60+ "</div>" + 
61+ "</div>" + 
62+ "<div style='position: relative; padding-top: 5px; display:inline-block'>" + 
63+ "<div style='display:inline-block; border:1px solid #dcdcdc;'><img src='http://tmapapi.sktelecom.com/resources/images/common/footer_logo.png' width='73' height='70'></div>" + 
64+ "<div style='display:inline-block; margin-left:5px; vertical-align: top;'>" + 
65+ "<span style='font-size: 12px; margin-left:2px; margin-bottom:2px; display:block;'>서울특별시 중구 을지로 65 SK T-타워</span>" + 
66+ "<span style='font-size: 12px; color:#888; margin-left:2px; margin-bottom:2px; display:block;'>(우)100-999 (지번)을지로2가 11</span>" + 
67+ "<span style='font-size: 12px; margin-left:2px;'><a href='https://developers.sktelecom.com/' target='blank'>개발자센터</a></span>" + 
68+ "</div>" + 
69+ "</div>" ; 
70+ //Popup 객체 생성. 
71+ infoWindow  =  new  Tmapv2 . InfoWindow ( { 
72+ position : new  Tmapv2 . LatLng ( e . latLng ) ,  //Popup 이 표출될 맵 좌표 
73+ content : content ,  //Popup 표시될 text 
74+ type : 2 ,  //Popup의 type 설정. 
75+ map : map  //Popup이 표시될 맵 객체 
76+ } ) ; 
77+ 
78+  map . setCenter ( new  Tmapv2 . LatLng ( e . latLng ) ) ; 
79+ } ; 
80+ 
81+  //처음위치로 이동하는 함수입니다. 
82+ function  Move ( ) { 
83+  var  lonlat  =  new  Tmapv2 . LatLng ( 37.556672 ,  126.975853 ) ; 
84+ map . setCenter ( lonlat ) ;  // 지도의 중심 좌표를 설정합니다. 
85+ } 
86+ 
87+  // 지도를 클릭했을때 발생하는 이벤트 함수입니다. 
88+ function  onClick ( e )  { 
89+ var  result  =  '클릭한 위치의 좌표는'  +  e . latLng  +  '입니다.' ; 
90+ var  resultDiv  =  document . getElementById ( "result" ) ; 
91+ resultDiv . innerHTML  =  result ; 
92+ } 
93+ 
94+  // '두 지점간의 거리' 버튼을 클릭하면 두 지점 간의 거리를 확인할 수 있습니다. 
95+ function  Info ( )  { 
96+ //var result ='두 지점 간의 거리 : '+distance+'m 입니다. ';  
97+ var  resultDiv  =  document . getElementById ( "result" ) ; 
98+  var  center  =  map . getCenter ( ) ; //map의 중심 좌표 값 
99+ var  level  =  map . getZoom ( ) ; //map의 ZoomLevel 값 
100+ var  extent  =  map . getBounds ( ) ; //map의 영역의 값 
101+ var  result  = '지도의 현재 중심좌표는' + center + '이고' + '\n지도의 현재 레벨은' + level + ',' + '\n지도의 현재 영역값은' + extent + '입니다.' ;  
102+ resultDiv . innerHTML  =  result ; 
103+ } 
104+ 
105+ function  fn_bound ( )  { 
106+ //지도의 대각선 위경도 좌표를 보여줍니다. 
107+ var  bound  =  map . getBounds ( ) ;  //지도의 영역을 가져오는 함수 
108+ var  result  =  '[ WGS84 ]영역은 '  +  bound  +  '입니다.' ;  // 표출할 메시지 
109+ var  resultDiv  =  document . getElementById ( "result" ) ;  // 메시지가 표시될 요소 
110+ resultDiv . innerHTML  =  result ;  // 요소의 메시지 값을 변경 
111+ } 
112+ 
113+ function  fn_screenSize ( )  { 
114+ //현재 표시되는 지도의 스크린상의 높이와 폭값을 보여줍니다. 
115+ var  screenSize  =  map . screenSize ( ) ;  // 지도 화면 사이즈를 가져오는 함수 
116+ var  result  =  '<p>화면 사이즈 (width/height)값은 '  +  screenSize . width ( )  +  '/' +  screenSize . height ( )  +  '입니다.</p>' ;  // 표출할 메시지 
117+ var  resultDiv  =  document . getElementById ( "result" ) ;  // 메시지가 표시될 요소 
118+ resultDiv . innerHTML  =  result ;  // 요소의 메시지 값을 변경 
119+ } 
120+ //지도의 사이즈를 지정한 값만큼 변경할 수 있는 함수입니다.  
121+ function  fn_Resize ( )  { 
122+ var  mapResize  =  document . getElementById ( 'map_div' ) ; //map의 div 
123+ mapResize . style . width  =  "100%" ; //map의 width 변경 
124+ mapResize . style . height  =  "400px" ; //map의 height 변경  
125+ 
126+ } 
127+ 
128+  // 지도의 줌레벨을 한단계 올리는 함수입니다. 
129+  function  zoomIn ( ) { 
130+  map . zoomIn ( ) ;  //지도를 1레벨 올립니다. 
131+  } 
132+  
133+  // 지도의 줌레벨을 한단계 내리는 함수입니다. 
134+  function  zoomOut ( ) { 
135+  map . zoomOut ( ) ;  //지도를 1레벨 내립니다. 
136+  } 
137+ 
138+  // 지도의 최대 줌레벨을 확인할 수 있는 함수입니다. 
139+  function  maxLevel ( ) { 
140+  var  zoomlevels  =  map . getZoom ( ) ;  //map의 최대 zoomlevel 값 
141+  var  result  = '최대값은 ' + zoomlevels + '입니다.' ;  //지도의 최대 zoomlevel을 표시합니다. 
142+  var  resultDiv  =  document . getElementById ( "result" ) ; 
143+  resultDiv . innerHTML  =  result ; 
144+  } 
145+ 
146+  // 지도의 드래그 이동을 막아주는 함수입니다. 
147+ function  DragBlock ( ) { 
148+  map . setOptions ( {  draggable : false  } ) ;  //지도 드래그 이동을 비활성화 합니다. 
149+ } 
150+ // 지도의 드래그 이동을 가능하게 하는 함수입니다. 
151+ function  Drag ( ) { 
152+ map . setOptions ( {  draggable : true  } ) ;  //지도 드래그 이동을 활성화 합니다. 
153+ } 
154+ 
155+  // 지도의 확대축소 기능을 막을 수 있는 함수입니다. 
156+ function  ZoomFalse ( ) { 
157+ map . _data . options . scrollwheel  =  false ;  // 지도 확대축소 비활성화 
158+ } 
159+  // 지도의 확대축소 기능을 가능하게 하는 함수입니다. 
160+  function  ZoomTrue ( ) { 
161+  map . _data . options . scrollwheel  =  true ;  // 지도 확대축소 활성화 
162+  } 
163+ 
164+  // '맵에 줌버튼을 추가' 버튼을 클릭하면 지도에 줌버튼을 추가 해주는 함수입니다.  
165+ function  add ( )  { 
166+ map . setOptions ( { zoomControl :true } ) ;  // 지도 옵션 줌컨트롤 표출 활성화 
167+ } 
168+ // '맵에 줌버튼을 제거' 버튼을 클릭하면 지도에 표시된 줌버튼을 제거 해주는 함수입니다. 
169+ function  remove ( )  { 
170+ map . setOptions ( { zoomControl :false } ) ;  // 지도 옵션 줌컨트롤 표출 비활성화 
171+ } 
172+ 
173+ function  fn_Update ( )  { 
174+ //맵의 div의 사이즈가 외부 코드로 동적으로 바뀐 경우 호출합니다. 
175+ map . resize ( ) ; //map 크기 재설정  
176+ } 
177+ </ script > 
178+ </ head > 
179+ < body  onload ="initTmap() "> <!-- 맵 생성 실행 --> 
180+ < div  id ="map_div "> </ div > 
181+ < div > 
182+ < button  onClick ="fn_bound() "> WGS84 영역의 확인</ button > 
183+ < button  onClick ="fn_screenSize() "> 지도 화면 사이즈 확인</ button > 
184+ < button  onClick ="fn_Resize() "> 지도 크기 바꾸기</ button > 
185+  < button  onClick ="fn_Update() "> 지도 채우기</ button > 
186+  < button  onClick ="Move() "> 처음 위치로 지도 이동</ button > 
187+  <!--<button onClick="Info()">두 지점간의 거리</button>--> 
188+  < button  onClick ="maxLevel() "> 지도의 설정된 줌-레벨(Zoom-Level)의 최대값</ button > 
189+ < button  onClick ="zoomIn() "> 지도레벨 +1</ button > 
190+  < button  onClick ="zoomOut() "> 지도레벨 -1</ button > 
191+  < button  onClick ="ZoomFalse() "> 지도 확대 축소 막기</ button > 
192+ < button  onClick ="ZoomTrue() "> 지도 확대 축소 켜기</ button > 
193+  < button  onClick ="DragBlock() "> 지도 드래그 이동 막기</ button > 
194+  < button  onClick ="Drag() "> 지도 드래그 이동 켜기</ button > 
195+  < button  onClick ="remove() "> 맵에 줌컨트롤을 제거</ button > 
196+  < button  onClick ="add() "> 맵에 줌컨트롤을 추가</ button > 
197+  < button  onClick ="Info() "> 지도 정보보기</ button > 
198+ < p  id ="result " /> 
199+ </ div > 
200+ </ body > 
201+ </ html > 
0 commit comments