프로젝트/앱인벤터: 프로젝트

[앱인벤터] 지하철 7호선 (1)

climacus 2025. 2. 6. 22:09

프로젝트 진행일: 2022년 5월 28일(토) ~ 10월 8일(토)까지

1. 기획: 

지하철 7호선 노선을 공공데이터 api를 활용하여, 지하철 역정보를 실시간 확인할 수 있는 어플을 만들자. 

전부 다 만드는거는 오래걸리고 힘드니까, 일단 7호선만 만들기로 함. 

 

2. 역정보 가져오기

API문서 읽기: 

- 역정보 받아오기

- 열차정보 받아오기

 

실시간 열차정보는 너무 상세한 내용이 나오기 때문에, 
일단 역정보부터 확정하기로 했다. 

 

 

서울 공공데이터로 검색하면 사이트가 나오는데, "서울 열린데이터 광장"사이트로 들어가면 된다. 
https://data.seoul.go.kr/

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 

회원가입을 하고, 오픈API 사용 요청을 해야한다. 
인증키를 받은 다음, 해당 키를 넣어서 호출하면 데이터를 받아 사용할 수 있다. 

내가 원하는 데이터가 있는지, 어떤 식으로 가져오는지는 샘플 데이터를 보면 알 수 있다. 

 

오픈API탭에 가서 샘플URL을 눌러보면, 데이터가 어떤식으로 오는지 알 수 있기 때문에

JSON파일을 파싱해서 원하는 값을 결과로 받아올 수 있다. 

역정보가 어디에 있는지 확인한다.  

STATION_CD(역 코드)
STATION_NM(역 네임)

LINE_NUM(05호선)

 

데이터 파싱: 

 

실제로 사용한 데이터는 "서울교통공사 노선별 지하철역 정보"를 사용하였다. 

 

앱인벤터는 딕셔너리 형태로... 2차원리스트를 인식하지 못하기 때문에...

JSON파일을 리스트로 까고 또 까고 하기로 했다. 

웹1으로 URL값을 가져와서 (검정색 부분은 발급받은 인증키가 들어간다), 합치기를 통해서 JSON파일을 디코딩하여 받는다. 

dataparsing에 담은 다음, 이차원리스트를 인덱싱을 통해 까고 들어간다. 

까고, 또 까고.... ai컴패니언을 통해 나온 값을 레이블로 띄워가면서, 내가 원하는 값이 나올 때까지 깐다. 

역 개수를 확인해서, 변수에 담은 다음

지역변수로 반복문을 돌려서, 역 개수만큼 역 이름을 가져와서 전역변수"역리스트"에 담는다. 

가져온 역 리스트를, 
캔버스에 찍는다. 어떻게? 반복문으로, 좌표를 더해가면서. 그러면 스크롤 했을 때 목록이 한 눈에 보인다. 

 

 

다음 시간에 계속...