[출처] 안드로이드로 구글맵 다루기 - 2. 구글맵 API키 얻기|작성자 녹차
- 2. 구글맵 API 키 얻기
MapView 객체는 구글 맵 서비스에서 지도 타일을 받아서 화면에 표시합니다. 이 구글 맵 서비스를 사용하기 위해서는 맵 서비스 등록 과정이 필요합니다. 왜냐면 어플리케이션이 구글 맵 서비스를 사용하려고 할 때 서비스 대상에 등록되어 있는지의 여부와 어플리케이션에 API 키가 있는지 확인을 하기 때문입니다.
그래서 서비스의 원칙에 동의를 하고 어플리케이션 인증 시에 사용을 위한 MD5 파일을 얻어야 합니다. 등록 과정을 통해서 등록된 인증서는 맵 API 키를 제공해 줍니다. 마치 제품을 샀을 때 인증을 하는 인증키라고 볼 수 있습니다. 인증 키를 얻었다면 맵뷰 오브젝트에 인증키를 등록하게 되고 그 이후에는 맵 데이터를 요청하면 서버에서 받을 수 있는 상태가 됩니다.
만약 유효한 API키를 적용시키지 않는다면 맵뷰는 컴파일 되고 실행까지 되지만 맵 데이터를 불러오지 못하기 때문에 바탕에는 하얀 그림만 둥둥 떠다닐 것입니다. 아니 아마 에러까지 날껍니다. 그러니 반드시 API 키를 등록하고 사용하시길 바랍니다.
맵의 API 키를 얻는 방법은 상당히 간단하고 공짜입니다.
일단 크게 세 부분으로 나눠 볼 수 있습니다.
API키 얻기 절차
1. 어플리케이션의 MD5의 인증서 코드를 얻습니다.
2. 얻은 코드를 이용해 구글 맵 서비스에 등록하여 API키를 얻습니다.
3. 어플리케이션에 존재하는 MapView에 맵의 API 키를 추가해 줍니다.
: 보통 XML에 추가해 주게 됩니다. 어떤 MapView이든 간에 한 API 키로 모두 사용이 가능합니다. 대신 그 API키는 당
연히 어플리케이션을 인증할 떄 사용한 API키여야 하겠지요.
어플리케이션에 인증서를 등록하려면 먼저 인증서가 있어야겠지요. 그러면 맵 서비스 등록 페이지에 등록하기 전에 Keytool을 사용해서 적절한 인증서를 생성시키도록 합시다. 만약 Keytool에 대해 모르신다면 좀더 알고 가도록 하겠습니다.
keytool은 어플리케이션이 가지고 있는 유니크한 키를 관리하는 명령어 입니다. 키는 파일에 저장이 되는데 먼저 MD5를 등록시키려면 이 키 파일이 있어야 합니다.
몇 개의 간단한 Keytool의 옵션들을 밑에 표로 작성하였습니다.
Keytool Option |
Description |
-list |
MD5 인증서를 출력해줍니다. |
-genkey |
키를 생성합니다. |
-keystore <keystore-name>.keystore |
대상의 key를 가지고 있는 keystore의 이름을 볼 수 있습니다. |
-storepass <password> |
keystore의 비밀번호를 저장합니다. 보안 상 예방을 위해서 보안이 확실하지 않거나 공용 컴퓨터에서는 입력을 피하시는 것이 좋습니다. |
-alias <alias_name> |
MD5 인증서를 생성시키기 위한 키의 가명을 지정합니다. 키가 복잡하니 가명으로 부르는 겁니다. |
-keypass <password> |
키의 비밀번호를 저장합니다. 역시 보안 상 예방을 합시다. |
SDK 디버그 MD5 인증서? 왜 이리 거창한 이름이냐구요? 단순히 표현하자면 개발용 MD5 인증서입니다. 표현하기 힘들어서 그냥 붙인거지만 하나 하나 따지면 금새 이해하실 겁니다.
SDK 디버그 인증서라는건 어플리케이션을 개발하거나 디버깅할 때 이클립스가 자동으로 생성해주는 것입니다. 우리가 이클립스로 프로젝트를 생성시키고 별다른 인증을 하지 않아도 Run을 눌러 실장비에 설치 되는 이유는 자동으로 설치해주기 때문이죠. 그런데 맵 서비스를 이용하기 위해서는 SDK 디버그 역시 MD5로 인증해야 합니다.
물론 개발이 다 끝나고 실제 배포를 할 때는 위와 같은 자신만의 키를 만들어야 하겠지만 말입니다. 그럼 개발용으로 MD5를 얻는 방법을 알아봅시다.
개발용 MD5를 생성하기 위해선 먼저 디버그 keystore을 찾아야 합니다. 디폴트 설정으로 AVD 디렉토리에 설치가 됩니다. AVD 디렉토리는 아래와 같이 위치해 있습니다.
•Windows Vista: C:\Users\<user>\.android\debug.keystore
•Windows XP: C:\Documents and Settings\<user>\.android\debug.keystore
•OS X and Linux: ~/.android/debug.keystore
만약 어디 있는지 못 찾으시겠다면 Windows > Prefs > Android > Build로 가시면 Default Debug Keystore에서 해당 위치를 확인하실 수 있습니다.
위치를 찾으셨다면 keytool을 사용해서 MD5를 얻어봅시다. 그리고 얻은 건 잊지 말고 보관해둡시다.
아래의 명령은 debugkey라는 가명을 가진 키를 디폴트 디버그 keystore에 android라는 패스워드로 저장시킨 겁니다.
./debug.keystore에서 맨 앞의 .은 디폴트 경로를 나타낸 것입니다.
모두 이해를 하셨다면 cmd 창으로 가서 아래의 명령어를 쳐보도록 합시다.
명령어는 어디서 치더라도 수행이 될겁니다.
(자바 환경변수 설정을 마쳐놓았다면 어디서든 keytool을 사용할 수 있습니다.)
> 명령어 <
keytool -list -alias debugkey -keystore <path_to_debug_keystore>.keystore -storepass android -keypass android
2. 구글 맵 서비스를 위한 인증서 등록
구글 맵 API 키 서명 사이트
http://code.google. com/android/maps-api-signup.html
위의 사이트에서 맵 API 키를 등록하기 위해서는 몇 가지 절차를 거쳐야 합니다.
1. 만약 구글 계정이 없다면 하나 만드셔야 합니다.
2. 맵 API 규정을 읽어보고 동의한다면 동의를 체크하세요.
3. MD5 인증 번호를 써넣으라는 곳에 넣고 Generate API 키를 누릅니다.
서버가 당신의 요청을 받아들이면 유니크한 API키가 만들어지고 결과 페이지의 당신의 키가 문자열로 출력됩니다.
그럼 그 문자열을 복사한 이후에 잘 보관해두세요. 코드에 써야합니다.
사실 잊어버리더라도 다시 MD5의 코드를 등록하면 API키를 얻으실 수 있습니다. 어차피 코드 제너레이터로 생성되는거니까요.
3. 코드에 맵 API 키 적용하기
이제 API 키를 얻었다면 코드에 넣도록 합니다. XML 코드에서 MapView를 정의할 때 apiKey라는 속성으로 넣어주게 됩니다. 예를 들면 이렇게 말이죠.
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="붙여 넣어야 할 맵 API키"
/>
XML이 아닌 자바 코드로 넣으신다면 생성자로 넣으셔도 됩니다.
mMapView = new MapView(this, "붙여 넣어야 할 맵 API키");
'개발 > 안드로이드' 카테고리의 다른 글
Android app에서 Twitter 연동하기 2 (0) | 2011.08.22 |
---|---|
Android app에서 Twitter 연동하기 1 (0) | 2011.08.22 |
안드로이드로 구글맵 다루기 - 2. 맵(MapView) 나타내기 (0) | 2011.08.19 |
안드로이드로 구글맵 다루기 - 1. 전체 구조 이해 (0) | 2011.08.19 |
[안드로이드]Android Sensor - Orientation (0) | 2011.07.19 |
댓글