일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 시
- MDB Select
- MDB Connect
- C# MDB Handle
- DrawEllipse
- JSON
- Json.NET
- 디자인 패턴
- Winform
- solid
- GDI+
- 경기도 버스정보시스템
- c#
- 공공 데이터 포털
- Cell Border Style
- Excel Cell Format
- WPF
- C# MDB
- 객체지향
- MVC
- 경기도 버스
- C# 파일 암/복호화
- 버스 API
- TDD
- NUnit
- eventhandler
- DrawRectangle
- delegate
- sqlite3
- eventargs
- Today
- Total
White Whale Studio
[경기도 버스 정보시스템 API] API의 사용법 및 관련 정보 본문
경기도 버스 API 개발을 시작합니다.
우선 API Key는 (공공데이터 포털 사이트)에서 받으셔야합니다.
API Key 발급은 해당 포털에 가입하신뒤 필요한 API를 검색 후 양식에 맞춰 신청서를 작성하시고 신청을 하시면 됩니다.
각 API 별로 인증키가 나오는 시간이 상이한데 바로 나오는 것이 있는가 하면 심의를 거쳐야만 발급이 되는 키도 있습니다. 경기도 버스 API 같은 경우가 바로 심의를 거치는 경우지요.
그래서인지 신청 후 발급 기간이 다른 API들에 비해 오래걸립니다. 신청후 2~3일정도 걸리는 듯 합니다.
아무튼 발급 받은 키 값을 가지고 경기도 버스 관련 개발을 해볼 예정입니다.
현재 (2013년 8월 기준) 관련 API 종류는 총 3가지로 분류됩니다.
1. 기반 정보
2. 버스 위치 정보
3. 버스 도착 정보
1. 기반정보는 API를 사용하기 위한 내용들로 가장 기본적인 내용들에 대한 데이터를 포함합니다.
지역 정보, 노선 정보, 정류장 정보, 노선별 운행 라인 정보 등 기본적인 정보들을 txt 파일 형식으로 제공합니다. 제공된 txt파일은 DB에 올리거나 txt 파일을 통째로 불러쓰거나 xml로 변환하거나 하는 것은
개발자의 마음이겠죠.
가장 큰 파일은 운행 라인 정보로 87MB 정도 되는데 제법 큰 용량이라 쓰기가 좀 애매합니다.
알아서 쓰시길 바랍니다.
2. 버스 위치 정보
특정 번호의 버스(노선이라고 표현합니다.)가 어디에 있는지 나타내주는 API 입니다.
노선 ID를 입력하면
변수명 | 타입 | 설명 |
---|---|---|
busLocationList | String | 버스위치정보 목록 |
routeId | String | 노선 ID |
stationId | String | 정류소 ID |
stationSeq | String | 정류소 순서 |
endBus | String | 막차 여부 (0:해당사항없음, 1:막차) |
lowPlate | String | 저상버스 여부 (0:일반버스, 1:저상버스) |
plateNo | String | 차량 번호 |
이런 식으로 정보가 출력이 됩니다.
3. 버스 도착 정보
특정 정류장에 도착하는 버스들의 도착 정보를 출력합니다.
busArrivalList | String | 버스도착정보 목록 |
stationId | String | 정류소 ID |
routeId | String | 노선 ID |
locationNo1 | String | 첫번째 차량 위치 정보 (WGS84 경위도 좌표) |
predictTime1 | String | 첫번째 차량 도착 예상시간 |
lowPlate1 | String | 첫번째 차량 저상버스 여부 (0:일반버스, 1:저상버스) |
plateNo1 | String | 첫번째 차량 차량번호 |
delayYn1 | String | 첫번째 차량 회차점 대기중 여부 |
locationNo2 | String | 두번째 차량 위치 정보 (WGS84 경위도 좌표) |
predictTime2 | String | 두번째 차량 도착 예정시간 |
lowPlate2 | String | 두번째 차량 저상버스 여부 (0:일반버스, 1:저상버스) |
plateNo2 | String | 두번째 차량 차량번호 |
delayYn2 | String | 두번째 차량 회차점 대기중 여부 |
위와 같이 크게 3가지로 분류되는 정보들을 사용하시면 되구요.
이러한 정보들은 경기도버스API 공식사이트 에서 더욱 상세하게 확인가능합니다.
http://openapi.gbis.go.kr/manual2/jsp/main.jsp
간단한 테스트도 가능하니 참고하시기 바랍니다.
사용법에대해서 살펴볼까요?
예를 들어서
버스 위치 정보 조회 시
openapi.gbis.go.kr/ws/rest/buslocationservice?serviceKey=test&routeId=200000085
와 같이 쿼리를 던집니다. 위에서 test 부분에는 발급받은 API 키를 입력하시면 되고 routeId에는 해당 노선의 노선 ID를 입력하시면됩니다.
여기서는 조금 애매한 것이 사용자들에게 가시적으로 보여져야할 것이 바로 노선번호(일반적인 버스 번호)인데 이것을 ID형식으로 던져야해서 다른 작업을 한 번 거쳐야한다는 것입니다.
이 routeId를 기반정보에서 받은 route(받은 날짜).txt 에서 검색을 하여 해당 노선 번호를 검색해야한다는 것이죠.
뭐 이것은 필요에 따라 사용법이 다를테니 세부적인 언급은 하지 않겠습니다.
다만 알아두시기만 하면됩니다.
위와 같이 쿼리를 던지게 되면
다음과 같은 결과를 얻으실수 있습니다.
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <RESPONSE>
- <COMMSGHEADER></COMMSGHEADER>
- <MSGHEADER>
- <QUERYTIME>2013-08-19 12:55:35.305</QUERYTIME>
- <RESULTCODE>0</RESULTCODE>
- <RESULTMESSAGE>정상적으로 처리되었습니다.</RESULTMESSAGE>
- </MSGHEADER>
- <MSGBODY>
- <BUSLOCATIONLIST>
- <ENDBUS>0</ENDBUS>
- <LOWPLATE>0</LOWPLATE>
- <PLATENO>경기70바1184</PLATENO>
- <ROUTEID>200000085</ROUTEID>
- <STATIONID>200000165</STATIONID>
- <STATIONSEQ>1</STATIONSEQ>
- </BUSLOCATIONLIST>
- <BUSLOCATIONLIST>
- <ENDBUS>0</ENDBUS>
- <LOWPLATE>0</LOWPLATE>
- <PLATENO>경기70바1069</PLATENO>
- <ROUTEID>200000085</ROUTEID>
- <STATIONID>200000117</STATIONID>
- <STATIONSEQ>6</STATIONSEQ>
- </BUSLOCATIONLIST>
보시면 아시겠지만 다른 API 들과 마찬가지로 XML 형태로 구성되어 있기 때문에 사용이 용이합니다.
버스 위치 정보와 버스 도착 정보를 제외한다면 대부분의 정보가 기반정보에 포함되므로 기반 정보를 잘 사용하셔야할 듯합니다.
다음 포스팅에서는 (만약 하게 된다면 -ㅅ-;;;) 기반 정보에 대해서 상세하게 알아보도록 하겠습니다.
'IT Engineering > 경기도 버스 API' 카테고리의 다른 글
[경기도 버스 정보 시스템 API] 기반 정보에 대해서 - 2 (4) | 2013.08.22 |
---|---|
[경기도 버스 정보 시스템 API] 기반 정보에 대해서 (2) | 2013.08.20 |