2011. 10. 19. 13:23

안드로이드에서 구글 지도(Google Map) 보기

XML 파일

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
>
 <com.google.android.maps.MapView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/mapView"
        android:clickable="true"
  android:apiKey="여기에 API Key 입력" />
</LinearLayout>

API Key는 `keytool.exe`라는 Java JDK의 명령어를 아래처럼 입력해서 밑에 나오는 인증서를 이용해서 얻는다. '키 저장소 비밀번호'는 그냥 엔터를 치면 되고, 인증서는 밑에 MD5로 나온 키 값을 일단 복사해 둔다. -v 옵션은 `JDK 1.7`버전을 쓴다면 반드시 입력해야지 아니면 MD5 키 값이 나오지 않는다.

그런 다음 http://code.google.com/intl/ko-KR/android/add-ons/google-apis/maps-api-signup.html 페이지로 가서 어그리(?)에 체크하고, MD5 인증키를 입력한 후 API Key 버튼을 클릭해서 나온 값을 맨 위 XML 파일의 apiKey 속성에 넣으면 된다.

AndroidManifest 파일. <uses-permission>과 <uses-library> 두 줄이 필수적.

<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".GoogleMapActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <uses-library android:name="com.google.android.maps"></uses-library>
</application>

Activity Java 파일

package net.br;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class GoogleMapActivity extends MapActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        MapView mapView = (MapView) findViewById(R.id.mapView);
        mapView.setBuiltInZoomControls(true);      
        
        MapController mc = mapView.getController();           
        mc.setCenter(new GeoPoint(5158653, 129158878)) ;  // 여기가 어디게?                                          
        mc.setZoom(12);
    }
    @Override
    Protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
}