안드로이드(Android) 에서 MapView 를 이용해 구글맵 구현하기 |
개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2 |
맵관련 프로그램은 구글의 장점이다. 그리고 다양하게 프로그램과 연계해서
사용할수 있기 때문에 필수로 알아야 할 팁이다.
먼저 테스트 키를 발급받고 그것을 소스에 포함시킨후 필요한
라이브러리를 받아 이클립스에 포함시키면 된다.
1. 테스트 키 발급받기 |
아래 주소로 들어간다. 아이디가 없다면 회원가입하고 들어간다.
https://cloud.google.com/console
그리고 프로젝트를 하나 만든다. 아래 그림은 이전에 내가 만든 프로젝트이다.
프로젝트를 만들었으면 왼쪽메뉴에서 Services 로 간다. 그러면 오른쪽에
서비스 받고자 하는 API 목록들이 나타나는데 아래로 내려가 Google Maps Android API v2 를
ON 으로 만든다.
사용허가를 받았으니 이제 키를 발급받으러 가보자. 왼쪽 메뉴에서 API Access 로 간다.
그러면 오른쪽에 Access 관련 내용이 나오게 되는데 아래쪽에 Simple API Access 라는
란이 있다. 간단하게 키를 만들수 있도록 기능들이 제공되는데 필요한 것은
Android 에서 사용할 Key 이므로 Create new Android Key … 버튼을 클릭한다.
새창이 뜨면 Create 버튼을 눌러 키를 생성한다.
창이 닫히고 키 발급된 내용이 화면에 나타난다. API Key 라고 나와있는 부분을
복사해서 사용하면 된다.
2. Google Play Services 받기 |
Map 을 실행하기 위해서는 Google Play Services Lib 가 필요하다. 상단에
Android SDK Manager 를 클릭해서 Extras > Google Play Services 를 다운 받는다.
받은 Google Play services 프로젝트를 import 시키자.
추가되었는데 에러가 난다면 Build Platform 을 바꾸어 주자.
그리고 Map 을 만들 프로젝트에서 환경설정으로 들어간후 아래 화면과
같이 Add 를 눌러 Library를 추가하자. 그러면 프로젝트에서 Android Dependencies 에
Google-play-services_lib.jar 가 포함되어 있는 것을 볼수 있다.
3. 키값 추가와 각종설정하기 |
구글맵을 사용하기 위해서 OpenGL 2.0 이상에서만 지원하는 단말기에 실행될수
있도록 설정을 해줘야 한다. AndroidManifest.xml 하단의 Manifest 탭에
Mainfest Extras 란으로 간다. 그리고 Add 클릭해서 Uses Feature 선택한후
Open GL 버전의 Attributes 값을 넣는다.
값은 0x00020000 이며 Required = true 로 설정한다.
다음은 Map key 를 입력하기 위한 Applications 탭을 클릭한후 Application Nodes
영역으로 가서 Add 클릭한다. 그리고 Meta Data 를 선택해 추가한다.
추가하였으면 Name 에 com.google.android.maps.v2.API_KEY 입력하고
Value 에는 Google 에서 받은 API Key 를 입력한다.
다음은 각종 Permissions 입력하자. Permissions 탭을 클릭한후 Permission 을 하나 만든다
그런후 Name 에 패키지주소.permission.MAPS_RECEIVE 입력한다.
다음은 user-permission 을 입력한다. 대부분 맵을 읽어오기 위해 필요한 것들이다.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
4. 에러 처리 |
(1) 버전에러가 나는 것이다. 아래 코드를 AndroidManifest.xml 에 추가하자.
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
(2) Caused by: java.lang.NullPointerException:
CameraUpdateFactory is not initialized
(3) 에뮬레이터에서는 동작하지 않는다. nullPointException 이 떨어지면서
에러가 나므로 기기에 연결해서 해야 한다.
5. 동작 확인 |
아래 그림과 같이 잘 뜨는 것을 확인할수 있다. 여름 휴가때 터키갈건데 잘됬군.
내가 만든 프로그램으로 직접 외국가서 삽질해 봐야 겠다.
여행가서 쓸만한 프로그램이 무엇인지 고민중이다. 사진을 위치와
연계하는 것도 재미있을거 같고 하여튼 나만을 위한 프로그램을
만들어 봐야 겠다.
6. 프로젝트 전체 소스 |
전체소스 : SampleMap.zip
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) 맵구현시 해당하는 이벤트 구현 예제 (1) | 2014.03.08 |
---|---|
안드로이드(android) 프로그레시브바를 이용한 파일 다운로드 구현 (0) | 2014.03.04 |
안드로이드(Android) 에서 제공하는 시간위젯 TimePicker 사용법 (0) | 2014.03.02 |
안드로이드(Android) 컴퓨터와 연결하여 화면 캡쳐하기 (0) | 2014.02.22 |
안드로이드(Android) Map 구현시 클릭이벤트로 화면좌표와 위도경도값 가져오기 (6) | 2014.02.18 |
안드로이드(Android) 이클립스와 스마트폰 갤럭시 S 의 연결 (1) | 2014.02.17 |
안드로이드(Android) 이클립스와 갤럭시S3 의 연결을 위한 개발자 디버깅 설정 (7) | 2014.02.16 |
안드로이드(Android) DrawerLayout 사용하여 멀티윈도우 만들기 (3) | 2014.01.12 |