Part 1. 구글 지도 2.0
01. 위치 기반 어플리케이션
안드로이드가 제공하는 패키지와 구글 맵 라이브러리를 이용해 어플리케이션 내에 쉽게 구축할 수 있다. 위치 기반 서비스는 사용자의 위치를 기반으로 하여 여러 가지 서비스를 제공한다. 위치 정보를 얻는 방법은 상당히 많은데, GPS(지구를 회전하는 여러 개의 위성을 이용해 삼각 측량으로 위치를 계산하는 방법 - 건물의 외부에서만 사용이 가능하다는 단점), 전화 기지국(전화 기지국에서 오는 전파의 시간 차이를 이용해 모바일 장치 위치 파악, 실내에서도 사용이 가능하다), WiFi의 AP(어떤 위치에 있는 AP에 접속되는지 보고 위치 파악) 등등을 이용할 수 있다.
02. 사용자 위치 파악하기
위치 관리자
안드로이드는 많은 위치 제공자들을 지원하며 이들은 모두 위치 관리자 시스템 서비스를 통하여 제공된다.
예제 - ProviderList
사용자의 위치 구하기
안드로이드에서 사용자 위치를 얻으려면 콜백 메소드를 등록해 사용해야 한다. 위치를 계산하는 데 시간도 많이 걸리고 보통 주기적으로 제공받기 때문. 먼저 requestLocationUpdates() 를 호출해 위치 관리자에게 위치 업데이트를 받겠다고 요청해야 한다. 이때 매개변수로 위치 리스너를 전달한다.
예제 - LocationTest
03. 지오코딩
주소나 지명을 (위도, 경도) 좌표로 변환시키는 작업. 반대의 작업은 역지오코딩(reverse geocoding)이라고 한다. 주소나 지명은 완전한 주소를 입력할 수도 있고, 단순한 도시 이름과 우편번호만을 입력할 수도 있다. 구글이 이 작업을 수행하기 위해 제공하는 클래스는 Geocoder로, 백엔드 서비스를 필요로 한다. isPresent() 메소드를 이용해 Geocoder 구현이 존재하는지 알 수 있다.
예제 - GeoCodingTest
04. 구글 지도 V2
안드로이드는 어플리케이션에 지도 기능을 추가하기 위해 구글 지도 라이브러리를 제공한다. 이 라이브러리에는 com.google.android.maps 패키지가 포함되어 있고 이 패키지에는 지도 타일의 다운로드, 렌더링, 캐싱 등의 기능이 내장되어 있다.
구글 지도는 PC나 스마트폰으로 지도를 볼 수 있으며 스트리트 뷰나 위성 영상, 고도, 인근 업소 정보와 같은 부가 서비스도 지원된다.
내가 만든 어플리케이션 내에 구글 지도를 넣어서 사용자에게 제공하려면 구글 지도 API를 이용하면 된다.
구글 지도 v2의 특징
3D 지도 지원, 벡터 타일 사용, 실내 지도 지원, 제스처로 동작 수행
구글 지도로 할 수 있는 것
turn-by-turn 내비게이션(음성 조작 가능), 인근 장소(식당 등) 검색, 쿠폰 검색
구글 지도 API의 기능
구글 지도 데이터를 기반으로 하는 지도를 어플리케이션에 추가 가능
자동으로 구글 지도 서버에 접속하여 타일 다운로드
마커 기능
오버레이 추가 가능
사용자의 터치 제스처 처리
사용자 뷰 변경 가능
예제 - MapsIntent
05. 구글 플레이 서비스
구글 지도 어플리케이션을 작성하는 전체 단계
1. 구글 플레이 서비스 SDK 다운로드해 설치
2. API 키 얻기. 구글 API 콘솔에서 프로젝트를 등록해야 하고 어플리케이션에 대한 서명 인증서가 준비되어야 한다.
3. 매니페스트 파일에서 필요한 설정을 추가한다.
4. 어플리케이션에 지도 추가하기
5. 어플리케이션 실행
구글 플레이 서비스
어플리케이션이지만 하는 작업은 거의 운영 체제 수준이며, 일종의 시스템-수준의 프로세스라고 볼 수 있다.
구글 플레이 서비스가 담당하는 서비스는 구글 지도, 위치 정보 API, 구글 플레이 게임, 클라우드 메시징 등이 있다.
구글 지도 API는 안드로이드 플랫폼에 포함되어 있지 않지만, 구글 플레이 스토어를 실행하는 안드로이드 2.2 이상의 장치에서 구글 플레이 서비스를 통해 사용 가능하다는 점이다.
06. 지도 API 키 얻기
07. 지도 어플리케이션 작성
08. 구글 지도 기초 사항
09. 지도 위에 마커 그리기
10. 지도 위에 그림 그리기
11. 지도와 상호작용하기
'안드로이드 프로그래밍' 카테고리의 다른 글
| Ch07. 프로세스, DB, 네트워크 - Part 4 (0) | 2016.01.14 |
|---|---|
| Ch07. 프로세스, DB, 네트워크 - Part 3 (0) | 2016.01.08 |
| Ch07. 프로세스, DB, 네트워크 - Part 2 (0) | 2016.01.07 |
| Ch07. 프로세스, DB, 네트워크 - Part 1 (0) | 2015.12.08 |
| Ch06. 액티비티, 보안, 서비스 - Part 3 (0) | 2015.11.30 |