2008년 6월 11일. 당시 포털의 버스 노선 찾기는 정류장 이름을 넣는 식으로 되어 있었는데, 내가 원하는 건 출발과 도착 혹은 그 사이의 경유지를 찍으면 그 지점을 통과하는 노선과 환승지점을 그냥 찾아주는 식이었다. 정류장 정보가 있으면 구현할 수 있겠다 생각은 하고 있었는데 대학 학기도 끝나고 해서 손을 댔다.
TM128은 네이버가 쓰던 방식이고, UTM은 원점 위치 등이 조금 다른 것이다.
다행히 서울시 교통정보센터에서 정류장 위치와 노선정보를 엑셀 파일로 제공한다. 거기에 버스의 실시간 위치도 URL을 가로채면 확인할 수 있는 구조로 되어 있었지만 실시간으로 쿼리를 날리면 또 대기오염 지도 때처럼 문제가 생길까봐 거기까진 나가지 않았다.
제공되는 정류장 위치는 네이버식으로 되어 있었는데 지도 API에서 쓰기 위해서는 경·위도로 바꿔야 했고 다행히 aero님의 변환식이 있어서 pyproj를 통해 잘 처리했다.
from pyproj import Proj, transformlatlong = Proj(proj='latlong', datum='WGS84', ellps='WGS84')
tm128 = Proj(proj='tmerc', lat_0='38N', lon_0='128E', ellps='bessel', x_0=400000, y_0=600000, k=0.9999, towgs84='-146.43,507.89,681.46')utm = Proj(proj='tmerc', lat_0='38N', lon_0='127E', ellps='GRS80', x_0=200000, y_0=500000, k=0.9999, towgs84='-146.43,507.89,681.46')long, lat = transform(tm128,latlong,x,y)구현은 Django로 했으며 엑셀 파일을 가져다 좌표 변환을 거치는 과정과 이후 좌표별로 요청이 들어오면 JSON으로 DB에서 그 영역의 정류소와 해당 노선을 뿌려주는 과정을 나누고, 나머지 전단의 표면적인 처리는 웹페이지에서 처리하는 식이었다.
다만 전단에서 처리하기엔 야후 지도에서 제공하는 API가 부족했다. 선을 일단 그리고 나면 따로 능동적인 반응을 이끌어낼 수도 없었고 기록이 남아서 동적으로 관리할 수 있게 된 것도 아니었다. 구글 지도도 봤지만 별반 다르지 않았다. 노선 위에 마우스를 올리면 노선 정보가 보이는 식의 동작이 불가능한 것이다.
14일 정도까지 전단에 대해 이런저런 손질을 하다가, 딱히 뭘 넣을지 아이디어가 고갈되었다. 의견을 들었던 것 중에 첫차·막차 시간, 배차 시간 같은 간단한 정보는 그냥 표시하면 되니까 쉬워 보였고, 최단거리 최소환승 같은 건 후단에서 계산이 좀 필요하긴 하지만 DB에 있는 정보로 처리할 수 있어 보였다.
지지부진하던 사이 포털에서 지도 서비스를 개선했고, 특히 다음 지도에서 대중교통 길찾기를 내 의도에 일치하게 만들어서, 따로 busfinder를 만들 이유가 사라졌다.


