Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) 에서 MapView 를 이용해 구글맵 구현하기

안드로이드 개발
반응형

안드로이드(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

 

 

 

 

 

 

 

 

 

반응형
Posted by 녹두장군1
,