실행환경
|
Desktop
|
조립식
|
CPU
|
Intel(R) Core(TM) i7-3770 3.50GHz
|
Memory
|
4 GB
|
OS
|
Window 7 Professional 32bit
|
Java
|
1.7.0_51
|
Android
|
SDK : 4.4.2 (KitKat), Google APIs 4.4.2 TEST : Galaxy S3 4.3(Jelly Bean)
|
WebServer
|
Apache Tomcat 7.0
|
DB
|
MySQL 5.6.15
|
Google Maps Android API v2 (구글 맵) 사용하기
|
구글에서 제공하는 사용 방법(링크)
1. 구글맵 라이브러리 다운로드 및 프로젝트 생성하기
2. 새 프로젝트에서 구글맵 라이브러리 프로젝트 가져오기
3. 인증키 발급받기
3-1. 디버깅용
3-1-1. cmd창에서 확인하기
3-1-2. 이클립스에서 확인하기
3-2. 릴리즈용
4. 구글맵 인증키 발급받기
5. 구글맵 사용하기
1. 구글맵 라이브러리 다운로드 및 프로젝트 생성하기
1-1. Google Play services SDK 다운로드하기
Android SDK Manager - Google Play services 를 설치한다.
1-2. 구글맵 라이브러리를 가져오기.
1-2-1. Ctrl + N -> Android Project from Existing Code 를 선택한다.
1-2-2. Root Directory 에 설치한 구글맵 라이브러리 경로를 지정해준다.
SDK경로\extras\google\google_play_services\libproject\google-play-services_lib
|
2. 구글맵을 사용할 새로운 프로젝트 생성하기.
2-1. 프로젝트를 생성하고, 프로젝트를 오른쪽 클린한 후 Properties(속성)를 선택한다.
2-2. 하단의 Library창에서 Add를 통해 가져온 프로젝트 추가해준다.
3. 인증키 발급받기
3-1. 디버깅용 키 지문 확인하기.
3-1-1. cmd(commend)창에서 확인하기.
1. OS별로 아래 경로로 이동 OS X, Linux ~/.android 윈도우 xp C:/Documents and Settings/사용자 계정/.android 윈도우 7 C:/Users/사용자 계정/.android
2. 명령어 실행 keytool -v -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 혹은 -keystore 값에 경로를 함께 지정해도 된다. |
3-1-2. 이클립스에서 확인하기
Window - Preferences -> Android - Build
3-2. 릴리즈용
....
4. SHA1 지문으로 구글 키 발급받기
4-1. Google APIs console로 이동한 뒤에 프로젝트를 생성한다.
4-2. 좌측 메뉴중 APIs & auth - APIs 에서 Google Maps Android API v2 를 찾아 활성화시켜준다.
4-3. APIs & auth - Credentials 에서 Public API access의 CREATE NEW KEY를 선택하고, Android key를 선택한다.
4-4. 아래와 같은 창이 나오면 위에서 확인했던 SH1키와 같이 현재 작업중인 패키지를 넣는다.
예) [SHA1지문];[현재 작업중인 패키지 이름] AF:3B:EF:67:CE:A1:5C:7D:C2:3F:C4:99:8B:63:7F:F5:92:83:E2:11;com.example.googlemap_v2
|
4-5. 아래와 같이 키가 발급되었다.
5. 구글 맵 사용하기(code)
5-1. 매니페스트 설정하기.
5-1-1. Manifest 탭
5-1-2. Application 탭(Meta Data 2개를 추가해야 한다.)
5-1-3. Permissions 탭
1개의 permission과 7개의 user-permission을 추가한다.
|
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature" >
</permission>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
JAVA CODE
5-1-4. AndroidManifest.xml에서 바로 추가할 수도 있다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature" >
</permission>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.maptest.MapTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="KEY" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
5-2. layout에 fragment 추가하기
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapTest" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
5-3. MainActivity에 FragmentActivity 상속 받기
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
참고자료