1. 먼저 API 키를 얻어야 한다.
https://code.google.com/apis/console 로 이동하여,
- 왼쪽 상단의 셀렉트바를 선택하여, Create 를 눌러서 프로젝트를 생성한다.
- 왼쪽의 항목들 중에, Services 항목에 들어가서 Google Cloud Messaging for Android 를 On 시킨다.
- 왼쪽의 항목들 중에, API Access 항목에 들어가서
를 눌러서 내 키스토어의 sha1 값을 가져온다. 이때, 먼저 내 키스토어를 만들어 놓은 상태여야 한다!
$ keytool -list -v -keystore 내키스토어파일명
여기서 나온 sha1값을 넣고, 내가 사용하고자 하는 안드로이드 앱 패키지 명을 넣는다.
즉, 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.example
위와 같은 형식으로 세미콜론을 sha1값과 패키지명 사이에 넣어주고 Create 해주면 API 키가 생성된다.
2. 이클립스에서
- Androd SDK Manager 를 실행하여, Google Play Services SDK 를 인스톨한다.
- 인스톨 되면 내 컴의 <android-sdk>/extras/google/google_play_services 경로에 이렇게 프로젝트가 깔린다.
- 이제 이클립스에서 프로젝트를 하나 가져온다. 이는 Android Project from Existing Code 로 프로젝트를 가져오면 된다.
- <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ 이 경로를 입력하여 프로젝트를 생성하면 이클립스에 생성된다.
- 내가 맵을 넣고자 하는 프로젝트에서, 위의 프로젝트를 임포트 해준다. 방법은, 맵을 넣고자 하는 내가 만든 프로젝트 - > Properties -> Android -> Library 에서 Add 버튼을 누르면, google-play-services 나오고 이를 선택하면 임포트가 완료!
3. 맵을 넣고자 하는 내가 만든 프로젝트 소스에서
- android menifest file 에 다음을 추가
<permission android:name="com.oca.oca.permission.MAPS_RECEIVE" android:protectionLevel="signature">
</permission>
<uses-permission android:name="com.oca.oca.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<application> 항목 자식항목에다 아래 추가. API 키는 위의 1번에서 생성한 API 키를 넣는다.
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="API KEY" />
- 맵을 띄울 xml 파일에 다음을 추가. 레이아웃 안에다가 다음 프레그먼트를 원하는 위치에 넣으면 되겠다.
<fragment
android:id="@+id/mapview"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- 소스 java 파일에서, 맵 불러서, 화면에 마커 표시하고 줌 표시하기.
public class TargetMap extends Activity {
GeoPoint gp;
MapView map_view;
String addr;
private GoogleMap mMap;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.target_map);
getActionBar().setTitle("지도");
getActionBar().setDisplayHomeAsUpEnabled(true);
Bundle bundle = getIntent().getExtras();
double lat = bundle.getDouble("lat");
double lon = bundle.getDouble("lon");
addr = bundle.getString("addr");
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapview)).getMap();
mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(addr));
mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, lon)));
mMap.animateCamera(CameraUpdateFactory.zoomTo(16));
TextView txt_title = (TextView)findViewById(R.id.select_title);
txt_title.setText(addr);
}
}