본문 바로가기

Programming/과거포스팅

안드로이드 구글 맵 연동_2(Android GoogleMap)

저번엔 키를 발급받는 포스팅을 했었는데 이번에는 맵 연동 코드를 포스팅해보겠습니다.


너무 많은 블로그와 홈페이지를 참고하여서 일일이 나열할 수 없지만 안드로이드 구글맵 연동이라는 검색어로 나온 페이지를 많이 참고하였습니다.


초보자도 쉽게 따라할 수 있게 포스팅 해보도록 하겠습니다.


첫번째 레이아웃 map.xml입니다.

주목해서 보실부분은 키부분입니다. 키부분만 자기가 발급받은 키로 바꾸시면 되겠습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    <com.google.android.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="0D-5xEiotvW2v9BaGEx4AiA-R3qNUjJNaPtvMEQ"/>
</LinearLayout>


이번껀 AndroidManifest.xml입니다. 전 프로젝트중이라 3개의 Activity가 있으므로 완전히 다 복사하실 필요는 없구요.

및줄 친 부분만 추가하시면 됩니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.soyeong.gccollege"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity android:name=".GCCollegeActivity" android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MenuActivity" android:label="@string/app_name" ></activity>
        <activity android:name="MapActivity" android:label="@string/app_name" ></activity>
        <uses-library android:name="com.google.android.maps"></uses-library>
    </application>
</manifest>

자 다음은 자바소스입니다. 설명은 하나씩 주석으로 달겠습니다.

package com.soyeong.gccollege; import android.os.Bundle; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapController; import com.google.android.maps.MapView; public class MapActivity extends com.google.android.maps.MapActivity{ MapView mapView; MapController mapController; double latitude = 35.67452; //위경도 입니다. 제가 나온 경남도립 거창대학의 좌표입니다. double longitude = 127.91124; // 위경도를 구하는 방법은 아래에 포스팅하겠습니다. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map); mapView = (MapView)findViewById(R.id.map_view); mapController = mapView.getController(); GeoPoint geoPoint = new GeoPoint((int)(latitude * 1E6), (int)(longitude * 1E6)); //시작 위경도 설정입니다. 구글은 도분초로 좌표를 이용하기 mapController.animateTo(geoPoint); //때문에 그것을 구하는 공식인듯 합니다. mapController.setZoom(18); // 맵의 사이즈입니다. 숫자가 클수록 좁은지역을 자세하게 볼 수 있습니다. 맵의 축소 및 확대 기능입니다. mapView.invalidate(); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }



자 이제 폰에서 실행시킵니다. 제가 졸업한 대학이 나오는군요 촌이라 주위에 건물이 없네요 ㅎㅎ

이것으로 오늘 포스팅을 끝내고 지도에 특정 정보를 표시하는건 다음 포스팅에서 하겠습니다.

좌표를 구하는 방법은 아래에서 설명하도록 하겠습니다.


마지막으로 좌표를 구하는 페이지 소개입니다.

http://universimmedia.pagesperso-orange.fr/geo/loc.htm

요기에 들어가서 한글로 원하는 주소를 적습니다.

그리고 지도가 뜨면 가운데 보이는 빨간 아이콘을 원하는 자리에 놓으면 그자리의 좌표가 나옵니다. 오늘의 포스팅은 여기까지입니다.