도래울

Android GoogleMaps 예제 본문

개발/Android

Android GoogleMaps 예제

도래울 2016. 2. 5. 11:36
  • googleMaps


[어플리케이션 정보]

액티비티

  •  googlemaps (googlemaps.java)


레이아웃

  • main.xml


권한 (uses-permission)

  • android.permission.INTERNET
  • android.permission.ACCESS_FINE_LOCATION


외부 라이브러리 (uses-library)

  • com.google.android.maps


API Level

  • 6 : Google APis [Android 2.0.1]

 

 

1. 프로젝트 생성

 create_project.PNG

  

 

 

 

2.레이아웃 생성 (main.xml)

  1. <?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:id="@+id/maps"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:apiKey="07Bf8vpdKrCyD-ruOGuC0evrx57YI1B39FaP9Ag" //API Key 입력
    android:clickable="true" //android:clickable 속성은 사용자의 상호작용 허용 여부를 설정
    android:focusable="true"
    />
  2. </LinearLayout>

 3.소스코드의 작성 (googlemaps.java)

 

  1. package com.test.googlemap;
  2.  
  3. import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Toast;
  4. import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
  5.  

    public class googlemap extends MapActivity {      //MapActivity 를 상속
     private final int GROUP_ID_ONE=0;
     private final int ZOOM_IN_ID =1;
     private final int ZOOM_OUT_ID=2;
     private final int GOTO = 3;
     private MapView maps;
     private boolean isSatellite = true;


        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);


            maps = (MapView)findViewById(R.id.maps);    
            maps.setBuiltInZoomControls(true);      //기본 줌인-줌아웃 콘트롤 활성화
            maps.isTraffic();                       //교통정보 표시
             if(isSatellite){ 
              maps.setSatellite(false);
              }
        }

  6.  @Override
     protected boolean isRouteDisplayed() {                  //추상메소드
      // TODO Auto-generated method stub
      return false;
     }

      public boolean onCreateOptionsMenu(Menu m){
         super.onCreateOptionsMenu(m);
         m.add(GROUP_ID_ONE, ZOOM_IN_ID, 0, "Zoom In");      //줌인메뉴
         m.add(GROUP_ID_ONE, ZOOM_OUT_ID, 0, "Zoom Out");    //줌아웃메뉴
         m.add(GROUP_ID_ONE,GOTO, 0, "go to" );              //서울시로 찾아가는 메뉴
      return true;
      
     }
     
     public boolean onOptionsItemSelected(MenuItem mitem){
         super.onOptionsItemSelected(mitem);
         MapController controll = maps.getController();
      
        switch(mitem.getItemId()){      
           case ZOOM_IN_ID:
           if(!controll.zoomIn()){
               Toast.makeText(this, "최대줌인 레벨도달 ", Toast.LENGTH_SHORT).show(); 
           }
          case ZOOM_OUT_ID:
           if(!controll.zoomOut()){
               Toast.makeText(this, "최대 줌아웃레벨도달", Toast.LENGTH_SHORT).show(); 
           }
          case GOTO:
             maps.setSatellite(true);                          //지도를 위성사진으로 설정
             GeoPoint p = new GeoPoint(37565263 , 126980667);  //서울의 좌표

             controll.animateTo(p);                            //해당위치로 이동 메소드   
             controll.setZoom(13);                             // 줌레벨 설정
         }

       return true;
    }


  7. }

 

 

4.AndroidManifest.xml 파일의 수정

 

  • 퍼미션의 추가

 

permissions_추가1.PNG

Permissions 탭을 클릭

 

 permissions_추가2.PNG

Add 버튼을 클릭

 

 

permissions_추가3.PNG 

 User Permission 선택

 

 

permissions_추가4.png

android.permission.ACCESS_FINE_LOCATION  (위치찾기 권한)을 추가

android.permission.INTERNET   (인터넷 연결 권한 )을 추가

 

 

permission_추가_5.png 

Permission 추가 완료

 

 

  •  외부 라이브러리 설정

permissions_추가1(1).PNG 

 Application 탭을 클릭

 

useslibrary2.PNG 

Add 버튼을 클릭

 

useslibrary.png 

User Library 선택

 

useslibrary3.png 

com.google.android.maps 라이브러리를 선택하고 Reauired 속석에  true 를 로 설정

 

 

  1.   <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.test.googlemap"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".googlemap"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
  2.     <uses-library android:name="com.google.android.maps" android:required="true"></uses-library>         //외부라이브러리
    </application>
        <uses-sdk android:minSdkVersion="6" />
  3. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>               //권한 설정
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>                           //권한 설정
    </manifest>

 

 

  •  에뮬레이터 설정

AVD1.PNG 

에뮬레이터 설정시 반드시 Target 를 Google API 로 설정해야 한다

 

Comments