category.js 8.51 KB
var express = require('express');
var router = express.Router();
var request = require('request');
require('dotenv').config();

/* GET home page. */
let SIGUN_CODE;
let SIGUNDONG_CODE;

var express = require('express');
var router = express.Router();
var request = require('request');
require('dotenv').config();

/* GET home page. */
let SIGUN_CODE;
let SIGUNDONG_CODE;
let x=0;
let y=0;
var GyeongGi_apikey=process.env.GyeongGi_apikey;


// 사용자가 index 페이지에서 주소를 입력하고 넘어오면 
router.post('/', function (req, res) {
    console.log(req.body);
    let userLocation = req.body.userLocation;
    // let userSi = req.body.si
    // let userDong = req.body.dong;
    let xyList = [];
    console.log(userLocation);
    // console.log(req);
    let YOUR_API_KEY = process.env.KAKAO_APIKEY;
    let kakaoOptions = {
        url: 'https://dapi.kakao.com/v2/local/search/address.json',
        method: 'GET',
        headers: {
            'Authorization': `KakaoAK ${YOUR_API_KEY}`
        },
        qs: {
            query: userLocation
        },
        encoding: 'UTF-8',
    }
    request(kakaoOptions, function(err, res, body) {
        if (!err && res.statusCode == 200) {
            var result = JSON.parse(body);
            console.log('result', result);
            x=result.documents[0].address.x;
            y=result.documents[0].address.y;
           
            
        }
    })
    res.render('category', { userLocation: req.body.userLocation });
});

router.get('/food', function (req, res) {
    res.send('This is food');
});
router.get('/school', function (req, res) {
    var academynum = 0;
    var librarynum = 0;
    var total_academic = 0;
    function callback(cb) {
        cb();
    }
    let AcademyOptions = {
        url: "https://openapi.gg.go.kr/TninsttInstutM?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey,
    }
    request(AcademyOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            var academy_result = JSON.parse(body);
            if (academy_result.TninsttInstutM[0].head[1].RESULT.CODE == 'INFO-000') {
                academynum = academy_result.TninsttInstutM[0].head[0].list_total_count;
                console.log(academynum + "개의 학원이 존재합니다.");
            }
            else {

                "학원이 존재하지 않습니다.";
            }
        }
    })
    let LibraryOptions = {
        url: "https://openapi.gg.go.kr/Tbggibllbrm?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey,

    }
    request(LibraryOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            var library_result = JSON.parse(body);
            //console.log(result.Tbggibllbrm[0].head[0].list_total_count);
            library_result = library_result.Tbggibllbrm[0];
            if (result.head[1].RESULT.CODE == 'INFO-000') {
                librarynum = library_result.head[0].list_total_count;
                console.log(librarynum + "개의 도서관이 존재합니다.");
            }
            else {

                "도서관이 존재하지 않습니다.";
            }

        }
    })
    callback(function () {
        total_academic = librarynum + academynum;
    })

    res.send('This is school');
});
router.get('/park', function (req, res) {
    var cityparknum = 0;
    let ParkOptions = {
        url: "https://openapi.gg.go.kr/CityPark?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey,
    }
    request(ParkOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            var park_result = JSON.parse(body);
            if (park_result.CityPark[0].head[1].RESULT.CODE == 'INFO-000') {
                cityparknum = park_result.CityPark[0].head[0].list_total_count;
                console.log(cityparknum + "개의 도시공원이 존재합니다.");
            }
            else {

                console.log("주변에 도시공원이 없습니다.");
            }
        }
    })

    res.send('This is park');
});
router.get('/transport', function (req, res) {
    function callback(cb) {
        cb();
    }
    var BusCnt = 0;
    var busStationList = [];
    var subwayStationList = [];
    var SubwayCnt = 0;
    var TotalCnt = 0;
    // res.send('This is transport');
    var apikey=process.env.ODSAY_APIKEY
    let BusOptions = {
        url: 'https://api.odsay.com/v1/api/pointSearch?lang=0&x=' + x + '&y=' + y + '&radius=500&stationClass=1&apiKey=' + apikey,
        encoding: 'UTF-8',
    }
    request(BusOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            var bus_result = JSON.parse(body);
            BusCnt = info_result.result.count;
            console.log("버스정류장 개수:" + BusCnt);
            for (var i = 0; i < BusCnt; i++) {
                busStationList.push(bus_result.result.station[i].stationName);
            }
            console.log(busStationList);
            callback(function () {
                let SubwayOptions = {
                    url: 'https://api.odsay.com/v1/api/pointSearch?lang=0&x=' + x + '&y=' + y + '&radius=1000&stationClass=2&apiKey=' + apikey,
                    encoding: 'UTF-8',
                }
                request(BusOptions, function (err, res, body) {
                    if (!err && res.statusCode == 200) {
                        var subway_result = JSON.parse(body);
                        SubwayCnt = subway_result.result.count;
                        console.log("지하철역 개수:" + SubwayCnt);
                        for (var i = 0; i < SubwayCnt; i++) {
                            subwayStationList.push(subway_result.result.station[i].stationName);
                        }
                        console.log(subwayStationList);
                        callback(function () {
                            //console.log(BusCnt,SubwayCnt);
                            TotalCnt = BusCnt + SubwayCnt;
                            console.log("총 정류장 개수:", TotalCnt);
                        })
                    }
                })
            })
        }
    })

    res.send(BusCnt);
});
router.get('/safe', function (req, res) {
    var secretlightnum = 0; //보안등
    var safebellnum = 0; //비상벨
    var cctvnum = 0; //cctv개수
    var total_safe = 0;
    function callback(cb) {
        cb();
    }
    let SecretLightOptions = {
        url: "https://openapi.gg.go.kr/SECRTLGT?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey;
        encoding: 'UTF-8',
    }
    request(SecretLightOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            secretlight_result = JSON.parse(xhr.responseText);
            if (secretlight_result.SECRTLGT[0].head[1].RESULT.CODE == 'INFO-000') {
                secretlightnum = secretlight_result.SECRTLGT[0].head[0].list_total_count;
                console.log(secretlightnum + "개의 보안등이 존재합니다.");
            }
            else {
                console.log("주변에 보안등이 없습니다.");
            }
        }
    })

    let SafeBellOptions = {
        url: "https://openapi.gg.go.kr/Safeemrgncbell?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey,

    }
    request(SafeBellOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            safebell_result = JSON.parse(body);

            if (safebell_result.Safeemrgncbell[0].head[1].RESULT.CODE == 'INFO-000') {
                safebellnum = safebell_result.Safeemrgncbell[0].head[0].list_total_count;
                console.log(safebellnum + "개의 안전 비상벨이 존재합니다.");
            }
            else {

                console.log("주변에 안전 비상벨이 없습니다.");
            }
        }
    })

    let CCTVOptions = {
        url: url = "https://openapi.gg.go.kr/CCTV?Type=json&SIGUN_CD=" + SGCD + "&Key=" + GyeongGi_apikey,
    }
    request(CCTVOptions, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            cctv_result = JSON.parse(body);
            if (cctv_result.CCTV[0].head[1].RESULT.CODE == 'INFO-000') {
                cctvnum = cctv_result.CCTV[0].head[0].list_total_count;
                console.log(cctvnum + "개의 CCTV가 존재합니다.");
            }
            else {

                console.log("주변에 CCTV가 없습니다.");
            }
        }
    })
    callback(function () {
        total_safe = safebellnum + secretlightnum + cctvnum;
    })

    res.send('This is safe');
});


router.get('/culture', function (req, res) {
    res.send('This is culture');
});

module.exports = router;