Merge branch 'sihwan' of http://khuhub.khu.ac.kr/2019102158/emergency_room_ChatBot into sihwan
Showing
2 changed files
with
56 additions
and
30 deletions
... | @@ -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 | ... | ... |
-
Please register or login to post a comment