김시환

Merge branch 'sihwan' of http://khuhub.khu.ac.kr/2019102158/emergency_room_ChatBot into sihwan

...@@ -6,22 +6,30 @@ globalThis.fetch = fetch.fetch; ...@@ -6,22 +6,30 @@ globalThis.fetch = fetch.fetch;
6 var AddressList = new Array(); 6 var AddressList = new Array();
7 7
8 8
9 -function getAddress(currQuery) { 9 +function getAddress(currQuery, cb = ()=> {}) {
10 - fetch('https://dapi.kakao.com/v2/local/search/address.json?' + new URLSearchParams({ 10 + setTimeout(function () {
11 - query: currQuery 11 + fetch('https://dapi.kakao.com/v2/local/search/address.json?' + new URLSearchParams({
12 - }), { 12 + query: currQuery
13 - method: "GET", 13 + }), {
14 - headers: {"Authorization": "KakaoAK c14234ba46c574c73715276c5644f397"} 14 + method: "GET",
15 - }) 15 + headers: { "Authorization": "KakaoAK c14234ba46c574c73715276c5644f397" }
16 - .then(response => response.json()) 16 + })
17 - .then(data => { 17 + .then(response => response.json())
18 - console.log(response) 18 + .then(data => {
19 - AddressList = data.documents.map(({road_address})=>({road_address})); 19 + //console.log(response)
20 - console.log(AddressList) 20 + AddressList = data.documents.map(({ road_address }) => ({ road_address }));
21 - return AddressList 21 + //console.log(AddressList)
22 - }) 22 + cb(AddressList);
23 + });
24 +
25 + },100)
23 } 26 }
24 27
28 +/*
29 +getAddress('석수동길', function (address) {
30 + console.log(address[0].road_address.address_name);
31 +})
32 +*/
25 33
26 34
27 35
......
1 const express= require('express'); 1 const express= require('express');
2 const app = express(); 2 const app = express();
3 var request = require('request'); 3 var request = require('request');
4 +const got = require('got');
4 5
5 //필요한 주소 정보 (data 형식 확정 x ) 6 //필요한 주소 정보 (data 형식 확정 x )
6 -let addresses = { 7 +let addresses = `{
7 "current_address" : { "address" : "현재 위치 주소", "x" : 127.1058342, "y" : 37.359708}, 8 "current_address" : { "address" : "현재 위치 주소", "x" : 127.1058342, "y" : 37.359708},
8 - "number" : 10, 9 + "number" : 2,
9 "hospital_data" :[ 10 "hospital_data" :[
10 {"name" : "병원명", "address" : "병원 주소", "x" : 129.075986, "y" : 35.179470, "distance" : 0, "duration" : 0}, 11 {"name" : "병원명", "address" : "병원 주소", "x" : 129.075986, "y" : 35.179470, "distance" : 0, "duration" : 0},
11 {"name" : "병원명", "address" : "병원 주소", "x" : 127.1058342, "y" : 37.359708, "distance" : 0, "duration" : 0} 12 {"name" : "병원명", "address" : "병원 주소", "x" : 127.1058342, "y" : 37.359708, "distance" : 0, "duration" : 0}
12 ] 13 ]
13 -} 14 +}`
15 +
16 +const address = JSON.parse(addresses)
14 17
15 var options = { 18 var options = {
16 'method': 'GET', 19 'method': 'GET',
...@@ -19,26 +22,41 @@ var options = { ...@@ -19,26 +22,41 @@ var options = {
19 'headers': { 22 'headers': {
20 'X-NCP-APIGW-API-KEY-ID': '12rhzhzq7g', 23 'X-NCP-APIGW-API-KEY-ID': '12rhzhzq7g',
21 'X-NCP-APIGW-API-KEY': 'FhD45P91TxG2820MadrsiPOUjI6bQMJhddnHZIeI' 24 'X-NCP-APIGW-API-KEY': 'FhD45P91TxG2820MadrsiPOUjI6bQMJhddnHZIeI'
22 - } 25 + },
23 }; 26 };
24 27
25 const ID = '12rhzhzq7g'; 28 const ID = '12rhzhzq7g';
26 const KEY = 'FhD45P91TxG2820MadrsiPOUjI6bQMJhddnHZIeI'; 29 const KEY = 'FhD45P91TxG2820MadrsiPOUjI6bQMJhddnHZIeI';
27 30
28 -function direction(data){ 31 +async function direction(data){
29 var num = data.number; 32 var num = data.number;
30 - for (let i = 0; i< num;i++){ 33 + var a = []
31 - const _url = 'https://naveropenapi.apigw.ntruss.com/map-direction-15/v1/driving?start='+data.current_address.x+','+data.current_address.y+'&goal='+data.hospital_data[i].x+','+data.hospital_data[i].y+'&option=trafast'; 34 + for (let i =0; i<num; i++){
32 - options.url = _url; 35 + a.push('https://naveropenapi.apigw.ntruss.com/map-direction-15/v1/driving?start='+data.current_address.x+','+data.current_address.y+'&goal='+data.hospital_data[i].x+','+data.hospital_data[i].y+'&option=trafast')
33 - 36 + }
34 - request(options,function(error, respose){ 37 + console.log(a)
38 + const PromiseList = a.map(async (e)=> {
39 + const _url = 'https://naveropenapi.apigw.ntruss.com/map-direction-15/v1/driving?start='+data.current_address.x+','+data.current_address.y+'&goal='+data.hospital_data[i].x+','+data.hospital_data[i].y+'&option=trafast';
40 + options.url = _url;
41 +
42 + return await request(options,function(error, respose){
43 + console.log("11111111111111111")
35 var databody = JSON.parse(respose.body); 44 var databody = JSON.parse(respose.body);
45 + if (databody.code !=1){
46 + console.log("2222222222222222")
47 + console.log(databody)
36 var distance = databody.route.trafast[0].summary.distance/1000; // km 단위 48 var distance = databody.route.trafast[0].summary.distance/1000; // km 단위
37 var duration = databody.route.trafast[0].summary.duration/1000/60; // 분 단위dy 49 var duration = databody.route.trafast[0].summary.duration/1000/60; // 분 단위dy
38 - data.hospital_data[count].distance = distance; 50 + data.hospital_data[i].distance = distance;
39 - data.hospital_data[count].duration = duration; 51 + console.log(data.hospital_data[i].distance)
40 - } 52 + data.hospital_data[i].duration = duration;}
41 - ) 53 + })
42 - } 54 + })
43 - return data} 55 +
56 + const result = await Promise.all(PromiseList)
57 +
58 +
59 +
60 + console.log(result)
61 + return result}
44 console.log(direction(address)) 62 console.log(direction(address))
...\ No newline at end of file ...\ No newline at end of file
......