본문 바로가기

카테고리 없음

Google Maps API example

Android 에서 Google Maps API Service를 사용하기 위한 절차

MapView 클래스
Android기반에서 위도/경도 정보(GPS가 생성하는 위치정보)를 바탕으로 현재의 위치를 지도해 표시하는 등의 위치기반 프로그램을 작성하는데 필요한 주요 클래스는 MapView이다.

MapView클래스는 Google Maps 서비스에 접속하여 데이터를 가져오기 때문에 Google Maps API Service에 가입해야만MapView 클래스를 사용한 위치기반 프로그램을 작성할 수 있다.
MapView 클래스는 ViewGroup를 상속한 Container에 속하고 Google Maps service에 접속하여 지도를 다운로드하고 화면에 그려주는 역할을 한다.

com.google.android.maps.MapView 클래스가 속한 패키지는 SDK에 포함되어 있지 않은 External Library이며, 사용하기 위해서는 다음과 같이 구글에서 다운로드하여 사용하여 Add-on 형태로 사용되어야 한다 ( Google APIs Add-on ).
Google Maps API를 다운로드하려먼 먼저 Android SDK를 다운로드해야 한다.

Google Maps API 다운로드 방법
Android SDK를 다운로드하여 압축을 해제하고 'SDK setup.exe' 더블클릭하면 설치할 라이브러리를 묻는 창에서 다음과 같이 Google APIs가 포함된 항목을 선택하고 'Accept'를 클릭하여 다운로드를 진행하면 Google Maps 라이브러리를 Add-ons 디렉토리로 다운로드할 수가 있다.

Google Maps API Key
이 패키지를 사용하기 위해서는 Google에서 제공하는 Google Maps API Key를 MapView클래스와 함께 사용해야 하는데,
Google Maps API Key를 얻기 위해서는 구글 사이트에서 Google Maps API Service에 가입하면 얻을 수가 있다.

MD5 fingerprint
Google Maps API Service에 가입하는 과정에서 MD5 지문(fingerprint)이 필요하며 MD5 fingerprint를 입력해야만 Google Maps API Key를 받을 수가 있다.

MD5지문은 JDK/bin/keytool.exe와 Android SDK가 설치되어 있는 시스템의 android debug.keystore를 이용하여 생성할 수 있다.

일단 API Key를 얻으면 Android 기반의 MapView를 이용하는 어떠한 프로그램에서도 사용할 수가 있으며, Emulator를 이용한 프로그램이든지 실제 모바일 기기에 적용하는 프로그램에서도 동일하게 API Key를 사용할 수가 있다.

MD5 혹은 SHA1 지문을 생성하는 예 (JDK 1.7 이상이 설치된 경우는 -v 를 사용함)

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Program Files\Java\jdk1.7.0_01\bin>keytool.exe -v -list -keystore "C:\Documen

ts and Settings\Administrator\.android\debug.keystore" -storepass android

키 저장소 유형: JKS

키 저장소 제공자: SUN

키 저장소에 1개의 항목이 포함되어 있습니다.

별칭 이름: androiddebugkey

생성 날짜: 2012. 2. 3

항목 유형: PrivateKeyEntry

인증서 체인 길이: 1

인증서[1]:

소유자: CN=Android Debug, O=Android, C=US

발행자: CN=Android Debug, O=Android, C=US

일련 번호: 4f2bf1f4

적합한 시작 날짜: Fri Feb 03 23:40:52 KST 2012, 종료 날짜: Sun Jan 26 23:40:52 K

ST 2042

인증서 지문:

         MD5: 87:7A:27:48:90:93:12:6C:AE:27:C1:D2:3C:06:3D:8A

         SHA1: C9:C2:84:62:61:09:0F:7B:17:D6:CD:8B:63:3F:9D:F9:9E:73:A9:FB

         SHA256: 0D:74:C1:4F:11:02:29:5A:51:1E:BD:7F:8B:51:FA:20:12:58:4A:16:8F:

5B:90:D5:CF:E4:EE:A6:25:42:9E:30

         서명 알고리즘 이름: SHA1withRSA

         버전: 3

*******************************************

*******************************************

C:\Program Files\Java\jdk1.7.0_01\bin>


Windows 7에서 MD5 지문을 생성하는 방법은 다음과 같다.

Microsoft Windows [Version 6.1.7600]

Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\Teacher>cd C:\Java\jdk1.7.0_05\bin

C:\Java\jdk1.7.0_05\bin>keytool.exe -v -list -keystore "C:\Users\Teacher\.androi

d\debug.keystore" -storepass android


키 저장소 유형: JKS

키 저장소 제공자: SUN


키 저장소에 1개의 항목이 포함되어 있습니다.


별칭 이름: androiddebugkey

생성 날짜: 2012. 6. 27

항목 유형: PrivateKeyEntry

인증서 체인 길이: 1

인증서[1]:

소유자: CN=Android Debug, O=Android, C=US

발행자: CN=Android Debug, O=Android, C=US

일련 번호: 4fea519f

적합한 시작 날짜: Wed Jun 27 09:19:43 KST 2012, 종료 날짜: Fri Jun 20 09:19:43 K

ST 2042

인증서 지문:

         MD5: CD:AC:5D:A0:53:3D:94:36:59:C7:0C:6A:9F:44:80:A4

         SHA1: C2:E6:79:8B:9A:12:53:1C:61:92:50:53:DE:0B:69:48:EC:D4:9D:1B

         SHA256: 9D:9D:BC:77:9D:87:6D:36:82:81:EE:FA:49:AF:A5:A4:A6:58:F8:34:AD:

7F:EC:90:11:77:FE:39:0A:DA:61:A5

         서명 알고리즘 이름: SHA1withRSA

         버전: 3

*******************************************


Google Maps API Service에 대한 보다 자세한 안내(개념, 등록법 등)는  아래의 주소를 참조한다.
http://code.google.com/intl/ko-KR/android/add-ons/google-apis/index.html

그리고 Google Maps API Service 가입하기위한 주소는 다음과 같으며 가입하려면 구글 회원인 상태에서 로그인한 후에 MD5 지문을 입력하고 [Get API Key] 버튼을 누르면 된다.
http://code.google.com/android/maps-api-signup.html

위의 MD5 지문을 등록 페이지(https://developers.google.com/android/maps-api-signup)에 접속하여 등록하고 API Key를 받는다

0lbzaFTEjuc0_Px6YogfrL4TSouuH7Ycup8BjPA

만약 발급된 Maps API Key를 분실한 경우에는 다시 MD5 지문을 생성하여 등록하면 원래의 것과 동일한 Maps API Key를 얻을 수가 있다. 이렇게 해서 얻은 키는 현재 컴퓨터에서만 사용할 수가 있고 다른 컴퓨터를 사용하려먼 다시 해당컴퓨터에서 인증서지문을 생성하여 신청시에 이용하는 동일한 절차를 반복해야 한다.

Maps API Key를 사용하는 예 1, 레이아웃 파일에 사용하는 경우

<com.google.android.maps.MapView
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:enabled="true"
 android:clickable="true"
 android:apiKey="0lbzaFTEjuc25uPzbG67FsR1mDuQ7c2jSSj_Gzg"
 />

Maps API Key를 사용하는 예 2, 자바코드상에서 사용하는 경우

mMapView = new MapView(this, "0lbzaFTEjuc25uPzbG67FsR1mDuQ7c2jSSj_Gzg");

마지막으로 MapView 요소를 사용가능한 상태로 설정하기 위해서는 AndroidManifest.xml 파일에서 다음과 같이 설정해 준다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.package.name">
 ...
 <application android:name="MyApplication" >
   <uses-library android:name="com.google.android.maps" />
 ...
 </application>

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>


Eclipse에서 테스트용 Google Map 응용프로젝트 생성하기

프로젝트를 생성할 때 API Level을 Google APIs (2.3.3)으로 설정한다.

기존 프로젝트에 구글 맵 기능을 추가하려면 Project > Properties > Android > Google APIs, 2.3.3 을 선택하고 Apply > OK를 선택한다

프로젝트 예제는 여기를 참조하세요