Showing
2 changed files
with
96 additions
and
70 deletions
.vscode/launch.json
0 → 100644
1 | +{ | ||
2 | + // Use IntelliSense to learn about possible attributes. | ||
3 | + // Hover to view descriptions of existing attributes. | ||
4 | + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||
5 | + "version": "0.2.0", | ||
6 | + "configurations": [ | ||
7 | + { | ||
8 | + "type": "pwa-chrome", | ||
9 | + "request": "launch", | ||
10 | + "name": "Open index.ejs", | ||
11 | + "file": "c:\\Users\\KSY\\Desktop\\4-1\\OpenSource\\Project\\views\\index.ejs" | ||
12 | + } | ||
13 | + ] | ||
14 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -5,7 +5,16 @@ | ... | @@ -5,7 +5,16 @@ |
5 | <title>코로나 백신 의료기관 조회</title> | 5 | <title>코로나 백신 의료기관 조회</title> |
6 | 6 | ||
7 | <!-- <link rel="stylesheet" href="/css/master.css"> --> | 7 | <!-- <link rel="stylesheet" href="/css/master.css"> --> |
8 | - | 8 | + <%if(typeof(info)!="undefined"){%> |
9 | + <script> | ||
10 | + try { | ||
11 | + if('<%=info%>'.length==0) throw new error(); | ||
12 | + } catch (error) { | ||
13 | + alert("해당 지역 주변에 가능한 의료기관이 존재하지 않습니다."); | ||
14 | + location.href='/'; | ||
15 | + } | ||
16 | + </script> | ||
17 | + <% }%> | ||
9 | </head> | 18 | </head> |
10 | <body> | 19 | <body> |
11 | <center> | 20 | <center> |
... | @@ -21,12 +30,14 @@ | ... | @@ -21,12 +30,14 @@ |
21 | </p> | 30 | </p> |
22 | </form> | 31 | </form> |
23 | </center> | 32 | </center> |
33 | + | ||
24 | <div id="map" style="width:1300px;height:750px; margin-left:100px; float:left; " ></div> | 34 | <div id="map" style="width:1300px;height:750px; margin-left:100px; float:left; " ></div> |
25 | <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=35fccf4b4e2a3179187346f26ed3f988&libraries=services"></script> | 35 | <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=35fccf4b4e2a3179187346f26ed3f988&libraries=services"></script> |
26 | - | 36 | + |
27 | <% if(typeof(info) != "undefined"){ %> | 37 | <% if(typeof(info) != "undefined"){ %> |
38 | + | ||
28 | <div style="overflow:scroll; width:500px; height:675px; padding:10px;float:right; margin-right:70px; border:1px solid black;"> | 39 | <div style="overflow:scroll; width:500px; height:675px; padding:10px;float:right; margin-right:70px; border:1px solid black;"> |
29 | - <ol id="placelist"> | 40 | + <ol id="placelist"> |
30 | <% for(i=0; i<info.length; i++){%> | 41 | <% for(i=0; i<info.length; i++){%> |
31 | <li class="item"> | 42 | <li class="item"> |
32 | <div class="info"> | 43 | <div class="info"> |
... | @@ -50,79 +61,80 @@ | ... | @@ -50,79 +61,80 @@ |
50 | <hr> | 61 | <hr> |
51 | </li> | 62 | </li> |
52 | <%} %> | 63 | <%} %> |
53 | - </ul> | 64 | + </ol> |
54 | </div> | 65 | </div> |
55 | <%} %> | 66 | <%} %> |
56 | 67 | ||
57 | <% if(typeof(result) != "undefined"){ %> | 68 | <% if(typeof(result) != "undefined"){ %> |
58 | - <script> | ||
59 | - var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
60 | - mapOption = { | ||
61 | - center: new kakao.maps.LatLng(37.596672, 127.051950), // 지도의 중심좌표 | ||
62 | - level: 2 // 지도의 확대 레벨 | ||
63 | - }; | ||
64 | - | ||
65 | - var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | ||
66 | - var geocoder = new kakao.maps.services.Geocoder(); | ||
67 | - // 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 | ||
68 | - var zoomControl = new kakao.maps.ZoomControl(); | ||
69 | - map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); | ||
70 | 69 | ||
71 | - var listData = "<%= result %>"; | 70 | + <script> |
72 | - listData = listData.replaceAll('"','\"'); | 71 | + var mapContainer = document.getElementById('map'), // 지도를 표시할 div |
73 | - listData = JSON.parse(listData); | 72 | + mapOption = { |
74 | - | 73 | + center: new kakao.maps.LatLng(37.596672, 127.051950), // 지도의 중심좌표 |
75 | - var count = 0; | 74 | + level: 2 // 지도의 확대 레벨 |
76 | - | 75 | + }; |
77 | - //입력되는 배열명이 listData로 들어오면 됨. | 76 | + |
78 | - listData.forEach(function(addr, index) { | 77 | + var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 |
79 | - var tmpaddr = ((addr.orgZipaddr).split(','))[0]; | 78 | + var geocoder = new kakao.maps.services.Geocoder(); |
80 | - console.log(tmpaddr); | 79 | + // 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 |
81 | - geocoder.addressSearch(tmpaddr, function(result, status) { | 80 | + var zoomControl = new kakao.maps.ZoomControl(); |
82 | - if (status === kakao.maps.services.Status.OK) { | 81 | + map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); |
83 | - var coords = new kakao.maps.LatLng(result[0].y, result[0].x); | 82 | + |
84 | - | 83 | + var listData = "<%= result %>"; |
85 | - count += 1; | 84 | + listData = listData.replaceAll('"','\"'); |
86 | - | 85 | + listData = JSON.parse(listData); |
87 | - var marker = new kakao.maps.Marker({ | 86 | + |
88 | - position: coords, | 87 | + var count = 0; |
89 | - clickable: true}); | 88 | + |
90 | - | 89 | + //입력되는 배열명이 listData로 들어오면 됨. |
91 | - // 마커를 지도에 표시합니다. | 90 | + listData.forEach(function(addr, index) { |
92 | - marker.setMap(map); | 91 | + var tmpaddr = ((addr.orgZipaddr).split(','))[0]; |
92 | + console.log(tmpaddr); | ||
93 | + geocoder.addressSearch(tmpaddr, function(result, status) { | ||
94 | + if (status === kakao.maps.services.Status.OK) { | ||
95 | + var coords = new kakao.maps.LatLng(result[0].y, result[0].x); | ||
93 | 96 | ||
94 | - var num=1; | 97 | + count += 1; |
95 | - // 인포윈도우를 생성합니다 | 98 | + |
96 | - var infowindow = new kakao.maps.InfoWindow({ | 99 | + var marker = new kakao.maps.Marker({ |
97 | - content: '<div style="width:250px;text-align:center;padding:5px 0;">' + addr.orgnm + '</div>', | 100 | + position: coords, |
98 | - }); | 101 | + clickable: true}); |
99 | - // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 | 102 | + |
100 | - // 이벤트 리스너로는 클로저를 만들어 등록합니다 | 103 | + // 마커를 지도에 표시합니다. |
101 | - kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); | 104 | + marker.setMap(map); |
102 | - kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); | 105 | + |
103 | - if(count == 1){ | 106 | + var num=1; |
104 | - map.setCenter(coords); | 107 | + // 인포윈도우를 생성합니다 |
105 | - } | 108 | + var infowindow = new kakao.maps.InfoWindow({ |
106 | - // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 | 109 | + content: '<div style="width:250px;text-align:center;padding:5px 0;">' + addr.orgnm + '</div>', |
107 | - //console.log(listData.length); | 110 | + }); |
108 | - } | 111 | + // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 |
109 | - }); | 112 | + // 이벤트 리스너로는 클로저를 만들어 등록합니다 |
110 | - }); | 113 | + kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); |
111 | - // 인포윈도우를 표시하는 클로저를 만드는 함수입니다 | 114 | + kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); |
112 | - function makeOverListener(map, marker, infowindow) { | 115 | + if(count == 1){ |
113 | - return function() { | 116 | + map.setCenter(coords); |
114 | - infowindow.open(map, marker); | 117 | + } |
115 | - }; | 118 | + // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 |
116 | - } | 119 | + //console.log(listData.length); |
117 | - | 120 | + } |
118 | - // 인포윈도우를 닫는 클로저를 만드는 함수입니다 | 121 | + }); |
119 | - function makeOutListener(infowindow) { | 122 | + }); |
120 | - return function() { | 123 | + // 인포윈도우를 표시하는 클로저를 만드는 함수입니다 |
121 | - infowindow.close(); | 124 | + function makeOverListener(map, marker, infowindow) { |
122 | - }; | 125 | + return function() { |
123 | - } | 126 | + infowindow.open(map, marker); |
124 | - </script> | 127 | + }; |
125 | -<% } %> | 128 | + } |
129 | + | ||
130 | + // 인포윈도우를 닫는 클로저를 만드는 함수입니다 | ||
131 | + function makeOutListener(infowindow) { | ||
132 | + return function() { | ||
133 | + infowindow.close(); | ||
134 | + }; | ||
135 | + } | ||
136 | + </script> | ||
137 | + <% } %> | ||
126 | 138 | ||
127 | </body> | 139 | </body> |
128 | </html> | 140 | </html> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment