서연진

Mark location

1 -<!DOCTYPE html>
2 -<html lang="en">
3 -
4 -<head>
5 - <meta charset="UTR-8" />
6 - <meta http-equiv="X-UA-Compatible" content="IE=edge" />
7 - <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8 - <title>HomePurchaseAgePrediction</title>
9 - <link rel="stylesheet" href="css/style2.css" />
10 - <link rel="preconnect" href="https://fonts.gstatic.com" />
11 - <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;500;700;900&display=swap"
12 - rel="stylesheet" />
13 -</head>
14 -
15 -<body>
16 - <nav>
17 - <h1 onClick="location.href='/'">Home Purchase Age Prediction</h1>
18 - </nav>
19 - <main>
20 - <div id="info"></div>
21 - <div id="home_info">
22 - <div id="map"></div>
23 - <ul id="house_list">
24 - <div>LIST</div>
25 - </ul>
26 - </div>
27 - </main>
28 - <script type="text/javascript"
29 - src="//dapi.kakao.com/v2/maps/sdk.js?appkey=17cbb7795b615d8f1f0595f972e26c0f&libraries=services,clusterer,drawing"></script>
30 - <script type="text/javascript" src="../js/next_page.js"></script>
31 -</body>
32 -
33 -</html>
...\ No newline at end of file ...\ No newline at end of file
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="en"> 2 <html lang="en">
3 - <head> 3 +
4 - <meta charset="UTF-8" /> 4 +<head>
5 - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 5 + <meta charset="UTF-8" />
6 - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 + <meta http-equiv="X-UA-Compatible" content="IE=edge" />
7 - <title>HomePurchaseAgePrediction</title> 7 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8 - <link rel="stylesheet" href="css/style.css" /> 8 + <title>HomePurchaseAgePrediction</title>
9 - <link rel="preconnect" href="https://fonts.gstatic.com" /> 9 + <link rel="stylesheet" href="css/style.css" />
10 - <link 10 + <link rel="preconnect" href="https://fonts.gstatic.com" />
11 - href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;500;700;900&display=swap" 11 + <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;500;700;900&display=swap"
12 - rel="stylesheet" 12 + rel="stylesheet" />
13 - /> 13 +</head>
14 - </head> 14 +
15 - <body> 15 +<body>
16 - <main> 16 + <main>
17 - <h1 onClick="location.href='/'"">Home Purchase Age Prediction</h1> 17 + <h1 onClick="location.href='/'"">Home Purchase Age Prediction</h1>
18 <h4> 18 <h4>
19 사용자의 위치기반으로 집 구매 시기를 예측해드립니다 (사용자 위치 근처의 19 사용자의 위치기반으로 집 구매 시기를 예측해드립니다 (사용자 위치 근처의
20 집을 찾아드립니다) 20 집을 찾아드립니다)
21 </h4> 21 </h4>
22 - <form action="/geolocation" method="GET" onsubmit="return jbSubmit()"> 22 + <form action=" /geolocation" method="GET" onsubmit="return jbSubmit()">
23 - <div> 23 + <div>
24 - 월소득(단위:만 원) 24 + 월소득(단위:만 원)
25 - <input 25 + <input type="text" id="salary" name="salary" placeholder="월소득을 숫자로 입력해주세요." />
26 - type="text" 26 + </div>
27 - id="salary" 27 + <div>
28 - name="salary" 28 + 지출(단위:만 원)
29 - placeholder="월소득을 숫자로 입력해주세요." 29 + <input type="text" id="expenditure" name="expenditure" placeholder="지출을 숫자로 입력해주세요." />
30 - /> 30 + </div>
31 - </div> 31 + <div>
32 - <div> 32 + 거주지역 (ex 강원도 강릉시 견소동)
33 - 지출(단위:만 원) 33 + <input type="text" id="address" name="address" placeholder="(도/시/구/동)을 입력해주세요." />
34 - <input 34 + </div>
35 - type="text" 35 + <div>
36 - id="expenditure" 36 + <input class="btn" type="submit" value="SUBMIT" />
37 - name="expenditure" 37 + </div>
38 - placeholder="지출을 숫자로 입력해주세요."
39 - />
40 - </div>
41 - <div>
42 - 거주지역
43 - <input
44 - type="text"
45 - id="address"
46 - name="address"
47 - placeholder="(도/시/구/동)을 입력해주세요."
48 - />
49 - </div>
50 - <div>
51 - <input class="btn" type="submit" value="SUBMIT" />
52 - </div>
53 </form> 38 </form>
54 - </main> 39 + </main>
55 - <script type="text/javascript" src="../js/home_page.js"></script> 40 + <script type="text/javascript" src="../js/home_page.js"></script>
56 - </body> 41 +</body>
57 -</html> 42 +
43 +</html>
...\ No newline at end of file ...\ No newline at end of file
......
1 function jbSubmit() { 1 function jbSubmit() {
2 var salary = Number(document.getElementById("salary").value); 2 var salary = Number(document.getElementById("salary").value);
3 var expenditure = Number(document.getElementById("expenditure").value); 3 var expenditure = Number(document.getElementById("expenditure").value);
4 - console.log(salary);
5 if (salary == "" || expenditure == "") { 4 if (salary == "" || expenditure == "") {
6 alert("값을 입력하세요!"); 5 alert("값을 입력하세요!");
7 return false; 6 return false;
......
1 +var jsonData = document.getElementById('jsonData').value;
2 +var myJsonData = JSON.parse(jsonData);
3 +
4 +myJsonData.sort(function (a, b) {
5 + return a.amount - b.amount;
6 +})
7 +
8 +newdata = []
9 +for (i = 0; i < 5; i++) {
10 + newdata.push(myJsonData[i]);
11 +}
12 +
13 +priceList = [];
14 +for (var i = 0; i < 5; i++) {
15 + priceList.push(newdata[i].amount);
16 +}
17 +
1 var Container = document.getElementById("map"); 18 var Container = document.getElementById("map");
2 var Option = { 19 var Option = {
3 center: new kakao.maps.LatLng(33.450701, 126.570667), 20 center: new kakao.maps.LatLng(33.450701, 126.570667),
...@@ -28,16 +45,19 @@ if (navigator.geolocation) { ...@@ -28,16 +45,19 @@ if (navigator.geolocation) {
28 } 45 }
29 46
30 //db에서 데이터 받아오면 구현할 부분 47 //db에서 데이터 받아오면 구현할 부분
31 -/* 48 +
32 // 마커를 표시할 위치와 내용을 가지고 있는 객체 배열입니다 49 // 마커를 표시할 위치와 내용을 가지고 있는 객체 배열입니다
33 -var positions = results; 50 +var positions = []
51 +for (var i = 0; i < 5; i++) {
52 + positions.push(newdata[i]);
53 +}
34 54
35 // 주소-좌표 변환 객체를 생성합니다 55 // 주소-좌표 변환 객체를 생성합니다
36 var geocoder = new kakao.maps.services.Geocoder(); 56 var geocoder = new kakao.maps.services.Geocoder();
37 57
38 -for (var i = 0; i < positions.length; i ++) { 58 +for (var i = 0; i < positions.length; i++) {
39 // 주소로 좌표를 검색합니다 59 // 주소로 좌표를 검색합니다
40 - geocoder.addressSearch(positions[i].add_address, function(result, status) { 60 + geocoder.addressSearch(positions[i].add_adress, function (result, status) {
41 // 정상적으로 검색이 완료됐으면 61 // 정상적으로 검색이 완료됐으면
42 if (status === kakao.maps.services.Status.OK) { 62 if (status === kakao.maps.services.Status.OK) {
43 var coords = new kakao.maps.LatLng(result[0].y, result[0].x); 63 var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
...@@ -48,31 +68,33 @@ for (var i = 0; i < positions.length; i ++) { ...@@ -48,31 +68,33 @@ for (var i = 0; i < positions.length; i ++) {
48 }); 68 });
49 // 마커에 표시할 인포윈도우를 생성합니다 69 // 마커에 표시할 인포윈도우를 생성합니다
50 var infowindow = new kakao.maps.InfoWindow({ 70 var infowindow = new kakao.maps.InfoWindow({
51 - content: positions[i].amount // 인포윈도우에 표시할 내용 71 + content: `<div style="width:150px;text-align:center;padding:6px 0;">${result[0].address.address_name + " " + result[0].road_address.building_name}</div>`
72 + // String(priceList[i]) // 인포윈도우에 표시할 내용
52 }); 73 });
74 +
53 // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 75 // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다
54 // 이벤트 리스너로는 클로저를 만들어 등록합니다 76 // 이벤트 리스너로는 클로저를 만들어 등록합니다
55 // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다 77 // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
56 kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); 78 kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow));
57 kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); 79 kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow));
58 } 80 }
59 - }); 81 + });
60 } 82 }
61 83
62 // 인포윈도우를 표시하는 클로저를 만드는 함수입니다 84 // 인포윈도우를 표시하는 클로저를 만드는 함수입니다
63 function makeOverListener(map, marker, infowindow) { 85 function makeOverListener(map, marker, infowindow) {
64 - return function() { 86 + return function () {
65 - infowindow.open(map, marker); 87 + infowindow.open(map, marker);
66 }; 88 };
67 } 89 }
68 90
69 // 인포윈도우를 닫는 클로저를 만드는 함수입니다 91 // 인포윈도우를 닫는 클로저를 만드는 함수입니다
70 function makeOutListener(infowindow) { 92 function makeOutListener(infowindow) {
71 - return function() { 93 + return function () {
72 - infowindow.close(); 94 + infowindow.close();
73 }; 95 };
74 } 96 }
75 -*/ 97 +
76 98
77 function displayMarker(Position) { 99 function displayMarker(Position) {
78 var marker = new kakao.maps.Marker({ 100 var marker = new kakao.maps.Marker({
...@@ -93,7 +115,6 @@ function getParameterByName(name, url = window.location.href) { ...@@ -93,7 +115,6 @@ function getParameterByName(name, url = window.location.href) {
93 } 115 }
94 116
95 //가격리스트로 year계산 117 //가격리스트로 year계산
96 -var priceList = [2000, 3000, 4000, 5000]; //임시로 넣어뒀습니다.
97 function yearCalc() { 118 function yearCalc() {
98 var sum = 0; 119 var sum = 0;
99 for (var i = 0; i < priceList.length; i++) { 120 for (var i = 0; i < priceList.length; i++) {
...@@ -110,6 +131,7 @@ var expenditure = getParameterByName("expenditure"); ...@@ -110,6 +131,7 @@ var expenditure = getParameterByName("expenditure");
110 var year = yearCalc(); 131 var year = yearCalc();
111 var div = document.getElementById("info"); 132 var div = document.getElementById("info");
112 133
134 +
113 //20년을 초과한 결과값이 나올 때 20 + α 로 표시합니다. 135 //20년을 초과한 결과값이 나올 때 20 + α 로 표시합니다.
114 if (year > 20) { 136 if (year > 20) {
115 year = "20 + α "; 137 year = "20 + α ";
...@@ -117,7 +139,10 @@ if (year > 20) { ...@@ -117,7 +139,10 @@ if (year > 20) {
117 div.innerText = `${salary}만원의 월급과 ${expenditure}만원의 지출을 유지하면 당신은 ${year}년 후 아래의 집을 구매할 수 있습니다.`; 139 div.innerText = `${salary}만원의 월급과 ${expenditure}만원의 지출을 유지하면 당신은 ${year}년 후 아래의 집을 구매할 수 있습니다.`;
118 140
119 //주소 받아오기 141 //주소 받아오기
120 -var dataFromServer = ["xx동 xx", "xx", "00동 00"]; //임시로 넣어뒀습니다. 142 +dataFromServer = [];
143 +for (var i = 0; i < 5; i++) {
144 + dataFromServer.push("주소: " + newdata[i].add_adress + ", 가격: " + newdata[i].amount + "만원, 면적: " + newdata[i].dedicated_area);
145 +}
121 146
122 //next page li 요소 추가 147 //next page li 요소 추가
123 for (var i = 0; i < dataFromServer.length; i++) { 148 for (var i = 0; i < dataFromServer.length; i++) {
...@@ -125,4 +150,4 @@ for (var i = 0; i < dataFromServer.length; i++) { ...@@ -125,4 +150,4 @@ for (var i = 0; i < dataFromServer.length; i++) {
125 const textNode = document.createTextNode(dataFromServer[i]); 150 const textNode = document.createTextNode(dataFromServer[i]);
126 li.appendChild(textNode); 151 li.appendChild(textNode);
127 document.getElementById("house_list").appendChild(li); 152 document.getElementById("house_list").appendChild(li);
128 -}
...\ No newline at end of file ...\ No newline at end of file
153 +}
......
...@@ -39,14 +39,14 @@ app.get("/geolocation", function (req, res) { ...@@ -39,14 +39,14 @@ app.get("/geolocation", function (req, res) {
39 if (error) { 39 if (error) {
40 throw (error); 40 throw (error);
41 } 41 }
42 + json_data = [];
42 for (var i = 0; i < results.length; i++) { 43 for (var i = 0; i < results.length; i++) {
43 if (results[i].city_country == address) { 44 if (results[i].city_country == address) {
44 json_data.push(results[i]); 45 json_data.push(results[i]);
45 } 46 }
46 } 47 }
48 + res.render('kakaomap', { 'data': json_data })
47 }); 49 });
48 - res.render('kakaomap', { 'data': json_data })
49 - // res.sendFile(path.join(__dirname + "/kakao/kakaomap.html"), { json_data: json_data });
50 }); 50 });
51 51
52 52
......
...@@ -14,8 +14,7 @@ ...@@ -14,8 +14,7 @@
14 14
15 <body> 15 <body>
16 <nav> 16 <nav>
17 - <p>js data : <%=data[0].add_adress%> 17 + <input type="hidden" id="jsonData" value="<%=JSON.stringify(data)%>" />
18 - </p>
19 <h1 onClick="location.href='/'">Home Purchase Age Prediction</h1> 18 <h1 onClick="location.href='/'">Home Purchase Age Prediction</h1>
20 </nav> 19 </nav>
21 <main> 20 <main>
...@@ -30,11 +29,6 @@ ...@@ -30,11 +29,6 @@
30 <script type="text/javascript" 29 <script type="text/javascript"
31 src="//dapi.kakao.com/v2/maps/sdk.js?appkey=17cbb7795b615d8f1f0595f972e26c0f&libraries=services,clusterer,drawing"></script> 30 src="//dapi.kakao.com/v2/maps/sdk.js?appkey=17cbb7795b615d8f1f0595f972e26c0f&libraries=services,clusterer,drawing"></script>
32 <script type="text/javascript" src="../js/next_page.js"></script> 31 <script type="text/javascript" src="../js/next_page.js"></script>
33 - <% if(data){ %>
34 - <% for(let i=0;i < data.length;i++) { %>
35 - NAME : <%= data[i].add_adress %>, AGE : <%= data[i].amount %><br>
36 - <% } %>
37 - <% } %>
38 </body> 32 </body>
39 33
40 </html> 34 </html>
...\ No newline at end of file ...\ No newline at end of file
......