들어가며:
놀러 갈 때 버스나 지하철을 타는 건 피할 수 없는 일인데, 가는 길을 모른다면 난감하겠죠. 공식 앱을 쓰자니 단점이 너무 많고, 휴대폰 브라우저로 검색하자니 느리고 번거롭습니다... 이런 문제들을 해결하기 위해 가벼운 여행 도우미 앱을 직접 만들어 보겠습니다. 이제 길 잃을 걱정은 끝! _\^o^/_
1. 기능 요구사항 분석
기본 기능:
- 출발지와 목적지를 입력하여 다양한 승차 경로를 조회하고 표시할 수 있어야 함
- 버스 노선 번호로 경유 정류장을 조회할 수 있어야 함 (정류장을 지나치는 것을 방지...)
확장 기능:
- GPS 위치 추적으로 출발지(현재 위치에서 가장 가까운 정류장 이름) 자동 가져오기 [배터리와 데이터 소모 문제로 나중에 포기함...]
- 지도 표시 [이 역시 나중에 포기함. 걷는 것을 좋아하는 분은 예외겠지만, 사용자에게 지도가 크게 유용하지 않아 보임. 적어도 저에게는 별 쓸모가 없었음]
2. 실현 가능성 분석
1. Baidu Map Open Platform에서 제공하는 API로 승차 경로 조회가 가능함
2, 3, 4. 위와 동일. 결론: 필요한 모든 기능을 완벽하게 구현할 수 있음
3. 개발 전제 조건
- Baidu Map 개발자 계정 필요
- Key 필요 (현재 최신 버전의 지도 Key는 앱과 고유하게 바인딩됨)
- 공식 제공되는 jar 파일 필요
"바이두 지도 개발(百度地图开发)"로 검색하면 위 세 가지는 순식간에 해결됩니다. (이 점은 진입 장벽이 매우 낮아 칭찬할 만합니다. 텐센트나 시나 웨이보 등의 개발자 계정은 인증이 꽤 까다롭고, 신분증 사본을 요구하는 곳도 있죠...)
4. API 문서 및 데모 살펴보기
솔직히 API 문서는 별로 친절하지 않습니다. 함수 설명이 한 줄뿐인 경우가 많으니 주석이 꼼꼼하게 달려있어 이해하기 쉬운 데모를 직접 보는 것을 추천합니다.
5. 코딩 시작 (아래 소스 코드는 모두 테스트를 거쳤으며, 상세한 주석이 포함되어 있습니다)
소스 코드는 [소스 코드 다운로드] 참조
P.S. 소스 코드는 위에 제공되어 있으며, 질문이 있으시면 아래에 댓글을 남겨주세요.
6. 지도 표시
[가장 먼저 구현했던 기능입니다. (지도를 처음 다뤄봐서 지도가 어떻게 생겼는지 보고 싶어 좀 흥분했었죠...) 처음 요구사항에는 없었고 나중에는 제외되었지만, 아래 소스 코드는 여전히 잘 작동합니다]
소스 코드는 [소스 코드 다운로드] 참조
7. 오프라인 지도
오프라인 지도는 장점이 많지만, 많은 사용자에게 앱을 배포할 계획이라면 오프라인 지도 패키지 다운로드 기능을 추가하거나 (데모에 예제 코드가 있어 쉽습니다), 앱 최초 실행 시 APK 리소스 파일에 포함된 오프라인 지도를 사용자의 SD 카드로 복사하는 방법(이론적으로 가능)을 고려해 보세요. 물론 이 경우 지도의 적용 범위가 제한되므로, 특정 지역 대상 앱(예: 시안 여행 도우미)에 적합합니다.
오프라인 지도의 사용법은 다음과 같습니다:
- 공식 사이트에서 다운로드한 폴더 전체를 휴대폰 SDCARD의 지정된 경로에 복사합니다. (구체적인 경로는 압축 파일 안의 ReadMe.txt 참조)
- 프로그램 내에서 오프라인 지도 패키지에 대한 scan 초기화 작업이 필요합니다. (이는 지도 패키지를 파싱하여 하나의 큰 파일을 여러 개의 작은 파일로 나누는 과정으로, 파싱하지 않으면 지도 패키지를 사용할 수 없습니다.)
- 지도 표시 메서드가 이를 자동 감지하는 것 같습니다. (오프라인 지도가 있으면 우선적으로 사용함)
8. 실행 화면 스크린샷

아직 댓글이 없습니다