#keywords 버스,노선,위치,거리,rest,api,공공데이터,추적,서울시,운송,gps,정보,정류소,차고지,정류장,운수,괘적,bus #title 한국에서의 버스 위치추적 [wiki:Home 대문] / [wiki:CategoryProgramming 프로그래밍] / [wiki:BusTrackingInKorea 한국에서의 버스 위치추적] ---- == [wiki:BusTrackingInKorea 한국에서의 버스 위치추적] == * 작성자 조재혁([mailto:minzkn@minzkn.com]) * 고친과정 2015년 6월 3일 : 처음씀 [[TableOfContents]] === 시작하기전에 === [[Play(https://youtu.be/WxZ03XGAEZA)]] [[Play(https://youtu.be/oDi2ThfaH0k)]] 우리가 날마다 이용하는 버스의 위치정보를 획득하고 필요한 정보로 가공하고자 필자가 검토한 내용들을 정리해봅니다. 실제로 대부분의 자료는 서울시 또는 관련 유관기관에서 제공한 것이고 필자는 이것을 취합하여 정리만 한것임을 밝힙니다. 이 자리를 빌어서 관련 정보를 제공해주신 모든 분들께 감사하다고 전하고 싶네요. === [^http://www.data.go.kr/ 공공데이터포털 - data.go.kr] 제공서비스 === * 정부에서 제공하는 다양한 정보들을 제공받을수 있습니다. * 활용하기 위해서는 [^http://www.data.go.kr/ 가입] 후 API-Key를 받아서 정보에 접근하도록 프로그램에 활용할수 있습니다. * 이 사이트에서 발급해주는 API-Key가 Percent(%) Encoding 되어 표시해주기 때문에 적절히 Decoding 하여 사용할 필요가 있습니다. * 아무래도 비상업적 목적으로 제공하는 정보이다 보니 정보쿼리수에 제한이 있습니다. 대략 하루에 최대 10000쿼리로 제한하고 있는데요. 개발할때 이러한 제약을 잘 고려해서 만들 필요가 있습니다. * HTTP protocol 에서 RequestURL로 값을 넘겨주며 HTTP Header에 serviceKey항목으로 API-Key를 값으로 넘겨주면 이에 응답하여 필요한 정보를 받을수 있습니다. * 예를 들면 다음과 같습니다. * 제가 발급받은 실제 개발계정의 API-Key 입니다. {{{#!plain YOmBlmMTBHId9daGSUfhjPo7lFMaQ2IiPcwABv%2FrjVUSll7kTS38FfD7JyzMLCky6sVFIZrUN9dzE0aop5ZQKg%3D%3D }}} * 발급받은 API-Key는 Percent(%) Encoding이 되어 있기 때문에 다음과 같이 Decoding 한 값으로 변환해야 합니다. ([^http://www.url-encode-decode.com/ 변환이 어려우시면 여기를 클릭하세요.]) {{{#!plain YOmBlmMTBHId9daGSUfhjPo7lFMaQ2IiPcwABv/rjVUSll7kTS38FfD7JyzMLCky6sVFIZrUN9dzE0aop5ZQKg== }}} * 이제 curl 명령으로 테스트 해보겠습니다. (전체 노선정보를 얻는 예제) {{{#!plain curl \ -H "serviceKey:YOmBlmMTBHId9daGSUfhjPo7lFMaQ2IiPcwABv/rjVUSll7kTS38FfD7JyzMLCky6sVFIZrUN9dzE0aop5ZQKg==" \ "http://ws.bus.go.kr/api/rest/busRouteInfo/getBusRouteList?strSrch=" }}} * 일반 브라우저를 이용하는 경우 다음과 같이 합니다. [^http://ws.bus.go.kr/api/rest/busRouteInfo/getBusRouteList?strSrch=&serviceKey=YOmBlmMTBHId9daGSUfhjPo7lFMaQ2IiPcwABv/rjVUSll7kTS38FfD7JyzMLCky6sVFIZrUN9dzE0aop5ZQKg==] === 서울 시내버스 및 마을버스 운영현황 ([^http://traffic.seoul.go.kr/archives/1706 출처: traffic.seoul.go.kr]) === * 회사, 차량 및 노선 현황 (2015년 8월말 기준) || 구 분 || 회사(개) || 차량(대) || 노선(개) || || 시내버스 || 66|| 7,485|| 355|| || 마을버스 || 131|| 1,494|| 238|| * 정류소 현황 (2015년 10월 기준, 서울시에 속한 정류소만) || 구 분 || 정류소수(개소) || || 가로변 정류소 || 5,712|| || 중앙차로 정류소 || 356|| * 차고지 현황 공영 10개, 자가 56개, 임대 30개(영업소 포함) ==== 버스 노선 (Bus Route) ==== * 노선명(busRouteNm) 및 노선고유번호(busRouteId) : 노선정보를 조회하기 위하여 사용 * 노선의 유형(routeType) || routeType || 유형명칭 || 예시사진 || 기타 || || 0|| 공용 || || || || 1|| 공항 || [[attachment:A.jpg?width=100px Airport Limousine]] ||도시와 공항을 빠르게 잇는 목적으로 다니는 버스입니다. || || 2|| 마을 || [[attachment:M.jpg?width=100px 마을버스]] ||시내버스나 도시철도 등의 교통수단이 다니지 않는 동네 주거단지를 다니면서 다른 교통수단과 연계를 하는 버스입니다. || ||<|2> 3|| 간선 || [[attachment:B.jpg?width=100px 청색(B)]] ||서울시내 먼거리를 운행합니다. || || 심야 || [[attachment:N.jpg?width=100px Nbus]] ||심야 및 새벽시간대 (통상 23:40 ~ 06:00 내에서 운행) 시민의 이동편의 제공을 위해 심야전용 시내버스. (올빼미 버스) || || 4|| 지선 || [[attachment:G.jpg?width=100px 녹색(G)]] ||지하철로 연계 및 지역내 통행을 위한 버스입니다. || || 5|| 순환 || [[attachment:Y.jpg?width=100px 황색(Y)]] ||다양한 통행수요에 맞춰 대응하기 위한 버스입니다. || || 6|| 광역 || [[attachment:R.jpg?width=100px 적색(R)]] ||수도권과 서울의 도심 및 부도심을 빠르게 운행하는 것을 역할을 합니다. || || 7|| 인천 || ||인천광역시에서 운행되고 있는 시내버스입니다. || || 8|| 경기 || [[attachment:G_1.jpg?width=100px Gbus]] ||경기도에서 운행하는 버스입니다. || || 9|| 폐지 || || || * 노선번호의 부여규칙 및 권역구분방식 * 0 권역 : 중구, 종로구, 용산구(서울 도심권에 해당한다) * 1 권역 : 성북구, 강북구, 도봉구, 노원구 및 경기도 의 양주시, 의정부시, 포천시까지 포함. 서울 북동쪽 및 이와 인접한 경기도권을 포함한다. * 2 권역 : 성동구, 광진구, 동대문구, 중랑구 및 경기도 구리시, 남양주시까지 포함. 한강 이북지역 중 서울 동부에 해당하는 곳과 이와 인접한 경기도권을 포함한다. * 3 권역 : 강동구, 송파구 및 경기도 하남시를 포함한다. 서울 동남부지역 및 이와 인접한 경기도를 포함한다. * 4 권역 : 서초구, 강남구 및 경기도 성남시를 포함. 서울 강남으로 대표되는 지역과 성남시가 여기 들어간다. * 5 권역 : 금천구, 동작구, 관악구 및 경기도 안양시, 과천시를 포함한다. 서울 남부지역 및 이와 접한 경기도권이 들어간다. * 6 권역 : 구로구, 영등포구, 양천구, 강서구, 및 인천광역시 와 경기도 김포시, 부천시, 광명시, 시흥시까지 포함된다. 한강 이남의 서울 서부와 이와 접해있는 경기도권이 들어가는 번호 * 7 권역 : 은평구, 서대문구, 마포구 및 경기도 고양시, 파주시를 포함. 한강 이북의 서울 서부지역과 이에 접한 경기도가 포함된다. * 8 (맞춤) : 해당되는 지역은 없으나 급행노선이나 일정구간을 변종으로 셔틀뛰는 노선에 붙여준다. * N (심야) : 심야버스에만 붙는다. N뒤의 두 자리 번호가 권역번호이므로 참조. [[attachment:night.jpg?width=640px]] * 버스의 종류 [[attachment:운행_버스_종류.png]] * 권역구분번호 [[attachment:권역구분번호.jpg]] ==== 버스 정류소 (Bus Station) ([^http://opengov.seoul.go.kr/civilappeal/2896422 출처: opengov.seoul.go.kr]) ==== * 정류소ID 및 정류소 고유번호(stationNo) : 버스 도착 예정 시간 정보 확인을 위해 사용, 정류소 표지판 노선안내도 상단에 부착 * 정류소 고유번호 구성 (총 5자리) * 서울시 자치구별 앞 2자리 + 고유번호 3자리 (뒷 3자리 중 1번째 숫자 "0"은 버스전용차로를 의미하고, 나머지는 임의 부여로 의미 없음.) * 서울시 자치구별 정류소번호 앞 2자리 (01~25) || No || 자치구명칭 || || 01||종로구 || || 02||중구 || || 03||용산구 || || 04||성동구 || || 05||광진구 || || 06||동대문구 || || 07||중랑구 || || 08||성북구 || || 09||강북구 || || 10||도봉구 || || 11||노원구 || || 12||은평구 || || 13||서대문구 || || 14||마포구 || || 15||양천구 || || 16||강서구 || || 17||구로구 || || 18||금천구 || || 19||영등포구 || || 20||동작구 || || 21||관악구 || || 22||서초구 || || 23||강남구 || || 24||송파구 || || 25||강동구 || * 정류소의 종류 || type || 종류명칭 || || 0||공용 || || 1||일반형 시내/농어촌버스 || || 2||좌석형 시내/농어촌버스 || || 3||직행좌석형 시내/농어촌버스 || || 4||일반형 시외버스 || || 5||좌석형 시외버스 || || 6||고속형 시외버스 || || 7||마을버스 || === 차고지 === 서울시내버스를 담당하는 공영 차고지는 다음과 같다. (2013.10.27 기준) 다만 그 외에 차고지는 각 운수업체에서 직접 운영한다. || 명칭 || 소재지 || 운수업체 || || 강동공영차고지 || 서울특별시 강동구 강일동 ||서울승합, 대원여객, 송파상운, 신명운수, 강동교통 || || 강서공영차고지 || 서울특별시 강서구 개화동 ||[^http://www.damoabus.com/ 다모아자동차], 공항버스, 정평운수, 새한교통, 홍도산업, 염경운수, 대운교통, 공항리무진 || || 송파공영차고지 || 서울특별시 송파구 장지동 ||[^http://www.koreabrt.com/ 한국비알티자동차], 한서교통, 대성운수, 남성교통, 동성교통, 태진운수, 스마일버스, 은곡운수, 정평운수 || || 은평공영차고지 || 서울특별시 은평구 수색동 ||유성운수, [^http://www.sunjinwoonsu.co.kr/ 선진운수], 원버스, 보광교통, 현대교통 || || 중랑공영차고지 || 서울특별시 중랑구 신내동 ||대원교통, 상진운수, 북부운수, [^http://www.seoulmetro.net/ 메트로버스], 보광운수, 경성여객 || || 진관공영차고지 || 서울특별시 은평구 진관동 ||[^https://www.shinsungbus.com/ 신성교통], 제일여객, [^http://www.koreabrt.com/ 한국비알티자동차] || || 상암공영차고지 || 서울특별시 마포구 상암동 ||[^http://www.damoabus.com/ 다모아자동차] || || 양천공영차고지 || 서울특별시 양천구 신정동 ||[^http://www.okbus.or.kr/ 오케이버스], 세풍운수, 관악교통, [^http://www.dwtrs.co.kr/ 도원교통], 신목교통 || || 장지공영차고지 || 서울특별시 송파구 장지동 ||[^http://www.seoulbus.co.kr/ 서울버스], [^http://www.jinhwabus.co.kr/ 진화운수] || || 도봉공영차고지 || 서울특별시 도봉구 도봉동 ||[^http://www.stnbus.com/ 서울교통네트웍], [^http://www.koreabrt.com/ 한국비알티자동차] || || 난곡공영차고지 || 서울특별시 관악구 난향동 ||[^http://www.okbus.or.kr/ 오케이버스], 세광운수, 신림운수 || || || 경기도 의정부시 ||대원여객 || || || 경기도 구리시 ||대원여객 || || || 경기도 양주시 ||제일여객, 대원여객 || || || 경기도 하남시 ||대원여객 || || || 경기도 성남시 ||동성교통, 남성교통 || || || 경기도 군포시 ||대원여객, 군포교통, 우신버스 || || || 경기도 의왕시 ||우신버스 || || || 경기도 안양시 ||안양교통 || || || 경기도 광명시 ||범일운수, 한성운수, 보영운수, 세풍운수 || || || 경기도 부천시 ||신길운수 || || || 경기도 고양시 ||선진운수, 동해운수 ,제일여객, 신성교통, 신촌교통 || || || 경기도 파주시 ||신성교통, 제일여객 || || || 경기도 남양주시 ||태릉교통 || === 참고자료 === * 정보제공 서비스 * [^http://www.data.go.kr/ 공공데이터포털 - data.go.kr] * [^http://bus.go.kr/ 서울교통정보과 - bus.go.kr] * [^http://api.bus.go.kr/ 서울시 버스운행정보 공유서비스 - api.bus.go.kr] * [^http://www.bustime.co.kr/] * [^http://www.gbis.go.kr/ 경기버스정보] * [^http://topis.seoul.go.kr/ 서울교통정보과] * [^http://data.seoul.go.kr/ 서울 열린 데이터 광장] * [^http://data.seoul.go.kr/openinf/fileview.jsp?infId=OA-2280#detailInfo 버스정류장별이용현황] * [^http://www.biz-gis.com/ GIS 분석 전문 사이트 - 비즈GIS] * [^http://www.findlatitudeandlongitude.com/ Find Latitude and Longitude] * [^http://www.findlatitudeandlongitude.com/batch-reverse-geocode/#.VtlNqpyLQwG Batch Reverse Geocoding (좌표입력으로 주소를 추출)] * [^http://gits.gg.go.kr/web/main/index.do 경기도 교통 정보센터] * [^http://data.sejong.go.kr/pubr/main.do 세종특별자치시 - 공공데이터 포털 (세종 데이터 실록)] * 위치정보 규격 * [wiki:NMEA0183 NMEA 0183 (시간, 위치, 방위 등의 정보를 전송하기 위한 규격)] * 수학 (mathematics, 數學) 알고리즘 * [wiki:Ratio 비율계산] * [wiki:TrigonometricalFunction 삼각함수의 정리] * [wiki:IntegerSquareRoot Square Root (제곱근)] * 운수회사 홈페이지 * 김포교통: [^http://www.kimpobus.co.kr/] * 동성교통,남성교통: [^http://cafe.daum.net/donatrs/] * 대성운수: [^http://www.dsbus.net/] * 도원교통: [^http://www.dwtrs.co.kr/] * 메트로버스: [^http://www.seoulmetro.net/] * 범일운수: [^http://www.bumilbus.co.kr/] * 삼화상운,한성여객,흥안운수: [^http://www.heunganbus.com/] * 서울교통네트웍: [^http://www.stnbus.com/] * 선진운수: [^http://www.sunjinwoonsu.co.kr/] * 신성교통: [^https://www.shinsungbus.com/] * 우신버스,우신운수: [^http://www.woosintrs.com/] * 중부운수: [^http://www.jungbutrs.co.kr/] * 진화운수: [^http://www.jinhwabus.co.kr/] * 한국brt자동차: [^http://www.koreabrt.com/] * 다모아자동차: [^http://www.damoabus.com/] * 서울버스: [^http://www.seoulbus.co.kr/] * 오케이버스: [^http://www.okbus.or.kr/] * 흥안운수: [^http://www.heunganbus.com/] * 기타정보 * [^https://mirror.enha.kr/wiki/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%20%EC%8B%9C%EB%82%B4%EB%B2%84%EC%8A%A4 서울특별시 시내버스 전반] * [^https://ko.wikipedia.org/wiki/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%EC%9D%98_%EC%8B%9C%EB%82%B4%EB%B2%84%EC%8A%A4 서울특별시의 시내버스 (위키백과, wikipedia)] * [^https://ko.wikipedia.org/wiki/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%EC%9D%98_%EC%8B%9C%EB%82%B4%EB%B2%84%EC%8A%A4_%EB%85%B8%EC%84%A0_%EB%AA%A9%EB%A1%9D 서울특별시의 시내버스 노선 목록 (위키백과, wikipedia)] * [^https://namu.wiki/w/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%20%EC%8B%9C%EB%82%B4%EB%B2%84%EC%8A%A4 서울특별시 시내버스 (나무위키, namu.wiki)] * [^http://www.sbus.or.kr/ 서울특별시버스운송사업조합] * [^http://www.juso.go.kr/ 도로명주소 안내시스템] * [^http://traffic.seoul.go.kr/archives/1706 서울 시내버스 및 마을버스 운영현황] * [^http://traffic.seoul.go.kr/archives/27974 심야전용 시내버스(올빼미버스) 운행] * [^http://blog.naver.com/PostList.nhn?blogId=tony426 tony BMW (Bus Metro World)] * [^http://blog.naver.com/prologue/PrologueList.nhn?blogId=nannada0202&categoryNo=18 7555호 대충교통's story] * [^http://www.law.go.kr/LSW/lsInfoP.do?lsiSeq=138166#0000 도로의 구조ㆍ시설 기준에 관한 규칙 - 시행 2013.3.23. - 국토교통부령 제1호, 2013.3.23., 타법개정] * [^http://www.bus.or.kr/ 전국버스운송조합연합회] * [^http://www.ts2020.kr/ 교통안전공단] * [^http://www.boryeongbus.net/ 보령시 시내버스정보 - 대천여객(주)]