crawling.js 12.1 KB
function printSearchType(result) {
    if (result.result.searchType == 0) {
        console.log("도시내 이동");
    } else if (result.result.searchType == 1) {
        console.log("도시간 직통");
    } else {
        console.log("도시간 환승");
    }
}

function printBusCount(result) {
    console.log("버스 결과 개수:", result.result.busCount);
}

function printSubwayCount(result) {
    console.log("지하철 결과 개수 :", result.result.subwayCount);
}

function printSubwayBusCount(result) {
    console.log("버스 + 지하철 결과 개수 : ", result.result.subwayBusCount);
}

function printPointDistance(result) {
    console.log("출발점-도착점 직선 거리 :", result.pointDistance);
}

function printPathType(info) {
    if (info.pathType == 1) {
        console.log("지하철");
    } else if (info.pathType == 2) {
        console.log("버스");
    } else if (info.pathType == 3) {
        console.log("지하철 + 버스");
    }
}

function printTrafficDistance(info) {
    console.log("대중교통 이동거리: ", info.trafficDistance);
}

function printTotalWalk(info) {
    console.log("도보 이동거리 : ", info.totalWalk);
}

function printTotalTime(info) {
    console.log("총 소요시간 : ", info.totalTime);
}

function printBusTransitCount(info) {
    console.log("버스 환승 :", info.busTransitCount, "회");
}

function printSubwayTransitCount(info) {
    console.log("지하철 환승 :", info.subwayTransit, "회");
}

function printFirstStartStation(info) {
    console.log("최초 출발 역(정류소) : ", info.firstStartStation);
}

function printLastEndStation(info) {
    console.log("최종 도착 역(정류소) : ", info.lastEndStation);
}

function printBusStationCount(info) {
    console.log(info.busStationCount, "개 정류소 이동");
}

function printSubwayStationCount(info) {
    console.log(info.subwayStationCount, "개 역 이동");
}

function printPath(path) {
    printPathType(path);
    printTrafficDistance(path);
    printTotalWalk(path);
    printTotalTime(path);
    printBusTransitCount(path);
    printSubwayTransitCount(path);
    printFirstStartStation(path);
    printLastEndStation(path);
    if (path.pathType == 1) {
        printSubwayStationCount(path);
    } else if (path.pathType == 2) {
        printBusStationCount(path);
    } else {
        printBusStationCount(path);
        printSubwayStationCount(path);

    }
}

function printSubPath(subPath) {
    if (subPath.trafficType == 1) {
        console.log("지하철이용");
        console.log("이동거리 : ", subPath.distance);
        console.log("이동 소요시간 : ", subPath.sectionTime);
        console.log(subPath.stationCount, "개의 역 이동");
        console.log(subPath.startName, "에서 승차");
        //startX
        //startY
        console.log("승차역 id : ", subPath.startID);
        console.log(subPath.endName, "에서 하차");
        //endX
        //endY
        console.log("하차역 id : ", subPath.endID);
        printSubwayLane(subPath);
        printPassStopList(subPath);
    } else if (subPath.trafficType == 2) {
        console.log("버스 이용");
        console.log("이동거리 : ", subPath.distance);
        console.log("이동 소요시간 : ", subPath.sectionTime);
        console.log("이동 정거장수 :", subPath.stationCount);
        console.log(subPath.startName, "에서 승차");
        console.log("승차 정류쟝 id : ", subPath.startID);
        console.log(subPath.endName, "에서 하차");
        console.log("하차 정류장 id : ", subPath.endID);
        printBusLane(subPath);
        printPassStopList(subPath);

    } else {
        console.log("도보 이용");
        console.log("이동 거리 : ", subPath.distance);
        console.log("이동 소요시간 : ", subPath.sectionTime);
    }
}

function printBusNumber(lane) {
    console.log("버스 번호 : ", lane.busNo);

}

function printBusID(lane) {
    console.log("버스 id : ", lane.busID);
}

function printBusLane(subPath) {
    console.log("===========Bus=lane============");
    console.log(subPath.lane.length, "개의 버스 이용가능");
    for (var i = 0; i < subPath.lane.length; i++) {
        console.log(i + 1, "번째 버스")
        printBusNumber(subPath.lane[i]);
        printBusID(subPath.lane[i]);
        console.log("-------------------------");
    }
}

function printSubwayLane(subPath) {
    console.log("===========Subway=lane============");
    console.log(subPath.lane.length, "개의 지하철 이용가능");
    for (var i = 0; i < subPath.lane.length; i++) {
        console.log(i + 1, "번째 지하철")
        console.log(subPath.lane[i]);
        console.log("-------------------------");
    }
}

function printStations(station) {
    console.log("  ||  ");
    console.log(station.index, "번째 정류쟝");
    console.log("정류쟝 id:", station.stationID);//=======>>>>>>실시간 API가져오기!!!
    console.log(station.stationName);
    console.log("  ||  ");
}

function printPassStopList(subPath) {
    console.log("=====경로 확인=======");
    for (var i = 0; i < subPath.passStopList.stations.length; i++) {
        printStations(subPath.passStopList.stations[i]);
    }

}

function printTotalCount(result) {
    console.log(result.totalCount, "개의 경로 존재");
}

function printTrainCount(result) {
    console.log("============기 차 이 용=================")
    console.log("기차 탐색 결과 개수 : ", result.trainRequest.count);
}

function printOBJ(obj) {
    console.log("출발역 :", obj.startSTN, ",id :", obj.startID);
    //obj.SX
    //obj.SY
    console.log("도착역 :", obj.endSTN, ", id :", obj.endID);
    //obj.EX
    //obj.EY
    console.log(obj.trainType);
    //obj.trainCode
    //obj.mapOBJ
    console.log("소요 시간 :", obj.time);
    console.log("요금 :", obj.payment);
}

function printExBusCount(result) {
    console.log("==========고 속 버 스 이 용===========")
    console.log("고속 버스 탐색 결과 개수 : ", result.exBusRequest.count);
}

function printOutBusCount(result) {
    console.log("==========시 외 버 스 이 용===========")
    console.log("시외 버스 탐색 결과 개수 : ", result.outBusRequest.count);
}

function searchPubTransPathAJAX() {
    console.log('hihihihih');
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

    var xhr = new XMLHttpRequest();
    //var url = "https://api.odsay.com/v1/api/searchPubTransPath?SX=126.9027279&SY=37.5349277&EX=126.9145430&EY=37.5499421&apiKey=xGDjn0UBwQ%2FazbcOasoxEs4gIcLqCBEgCFMT%2BJeVKcI";
    var SX = 127.077001; //경희대학교 우정원 x좌표
    var SY = 37.246214;//경희대학교 우정원 y좌표
    var EX = 126.999472;//영통역 x좌표
    var EY = 37.266670;//영통역 y좌표
    var apiKey = "%2B6RMVoSKSHcru1NjEu194wRELD7wnalJG7JDY0mc2AE";
    var url = "https://api.odsay.com/v1/api/searchPubTransPath?SX=" + SX + "&SY=" + SY + "&EX=" + EX + "&EY=" + EY + "&apiKey=" + apiKey;
    xhr.open("GET", url, true);
    xhr.send();
    xhr.onreadystatechange = function () {

        if (xhr.readyState == 4 && xhr.status == 200) {
            var result = JSON.parse(xhr.responseText);
            //console.log(xhr.responseText);

            if (result.result.searchType == 0) { //한 도시내에서 이동

                var totalPathSummary = new Object();//json 객체로 저장
                totalPathSummary.searchType = result.result.searchType;
                totalPathSummary.busCount = result.result.busCount;
                totalPathSummary.subwayCount = result.result.subwayCount;
                totalPathSummary.pointDistance = result.result.pointDistance;

                totalPathSummary = JSON.stringify(totalPathSummary);
                //console.log(totalPathSummary);

                console.log("도시내 이동");
                printBusCount(result);
                printSubwayCount(result);
                printSubwayBusCount(result);
                printPointDistance(result);


                var pathList = new Array();

                for (var i = 0; i < result.result.path.length; i++) {
                    console.log("-----------------new 경로------------------------------");
                    console.log(i + 1, "번째 경로");

                    var path = new Object();
                    path.pathType = result.result.path[i].pathType;
                    path.info = result.result.path[i].info;
                    path.subPathList = new Array();
                    printPath(result.result.path[i].info);


                    for (var j = 0; j < result.result.path[i].subPath.length; j++) {
                        console.log("---------------");
                        var subPath = new Object();
                        subPath = result.result.path[i].subPath;
                        path.subPathList.push(subPath);
                        printSubPath(result.result.path[i].subPath[j]);
                    }
                    pathList.push(path);
                    console.log("--------------------경로 끝---------------------------");


                }
                pathList = JSON.stringify(pathList);
                //console.log(pathList);

            } else if (result.result.searchType == 1) {//도시간 이동
                //console.log(result.result);
                console.log("도시 간 이동");
                var totalPathSummary = new Object();
                totalPathSummary.startCityName = result.result.startCityName;
                totalPathSummary.startCID = result.result.startCID;
                totalPathSummary.endCityName = result.result.endCityName;
                totalPathSummary.endCID = result.result.endCID;
                totalPathSummary.pointDistance = result.result.pointDistance;
                totalPathSummary.totalCount = result.result.totalCount;

                totalPathSummary = JSON.stringify(totalPathSummary);
                //console.log(totalPathSummary);
                m
                console.log("출발 도시:", result.result.startCityName);
                console.log("도착 도시:", result.result.endCityName);
                printPointDistance(result.result);
                printTotalCount(result.result);
                printTrainCount(result.result);//기차 이용

                var trainList = new Array();//기차이용

                for (var i = 0; i < result.result.trainRequest.count; i++) {
                    var OBJ = new Object();
                    OBJ = result.result.trainRequest.OBJ[i];
                    OBJList.push(OBJ);
                    console.log("============", i + 1, "============");
                    printOBJ(result.result.trainRequest.OBJ[i]);
                }
                trainList = JSON.stringify(trainList);

                var exBusList = new Array();
                printExBusCount(result.result); //고속버스 이용
                for (var i = 0; i < result.result.exBusRequest.count; i++) {
                    var OBJ = new Object();
                    OBJ = result.result.exBusRequest.OBJ[i];
                    OBJList.push(OBJ);
                    console.log("============", i + 1, "============");
                    printOBJ(result.result.exBusRequest.OBJ[i]);
                }
                exBusList = JSON.stringify(exBusList);

                var outBusList = new Array();
                printOutBusCount(result.result);//시외 버스 이용
                for (var i = 0; i < result.result.outBusRequest.count; i++) {
                    var OBJ = new Object();
                    OBJ = result.result.outBusRequest.OBJ[i];
                    outBusList.push(OBJ);
                    console.log("============", i + 1, "============");
                    printOBJ(result.result.outBusRequest.OBJ[i]);
                }
                outBusList = JSON.stringify(outBusList);
            }
        }
    };
}

module.exports = {searchPubTransPathAJAX};