Google Android Map v2- Adım Adım

29 03 2013

Google Android Map v2-Adım adım

*Resimlere tıklarsanız daha büyük boyutta açılacaktır.

  1. Varsayılan ayarlarla yeni android projesi yaratın.

  2. “google-play-services_lib”i içe aktarın.
    1. File-->Import

    2. Android-->Existing Android Code into Workspace
    3. <bundle kök klasörü>\sdk\extras\google\google_play_services\libproject klasörüne gidin.

       

    4. “google-play-services_lib”i seçin ve finish'e tıklayın.

  3. google play services'i Kurun.
    1. sdk manager'i açın.
    2. google play services'i seçin ve kurun.
  4. Google play services Kütüphanesini projenize ekleyin.
    1. Proje üstünde sağ tıklayıp properties'i seçiniz.
    2. Kütüphaneyi seçip OK'e ba.
  5. Gerekli SHA1i Bulun.
    1. Command prompt'u açınız ve jdk/bin klasörüne gidiniz. Örneğin: C:\Program Files\Java\jdk1.7.0_02\bin
      • Start-->run, cmd
      • cd C:\Program Files\Java\jdk1.7.0_02\bin
    2. debug.keystore yolunu windows-->preferences-->android-->build'den bulabilirsiniz.
    3. Bu komutu çalıştırarak sha1 kodunu bulun: keytool -v -list -keystore "<debug.keystore path>" password soruluduğunda sadece “enter”e basınız.
    4. Daha sonra SHA1i kopyalayıp bir yere kaydedin. Benim makinemde (3C:64:03:7B:0E:F7:E5:71:0D:10:9D:62:4C:03:8C:F2:4E:AD:B8:94) idi.
  6. Android apps için key alınması.
    1. Gmail hesabınız olması gerekiyor.
    2. https://code.google.com/apis/console adresinden Google APIs projesi yarat.
    3. Servislerden, “Google Maps Android API v2”i aç.
    4. API Access'den, yeni Android Key yarat.

    5. SHA1 ve paket adını yapıştır. <SHA1>;<package name> örneğin: (3C:64:03:7B:0E:F7:E5:71:0D:10:9D:62:4C:03:8C:F2:4E:AD:B8:94;info.tekguc.umut.googlemapsmapsandroidv2)
    6. Üretilen kodu daha sonra kullanmak üzere kopyala, örneğin: AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI

       
  7. Android Virtual Device(AVD) yarat.
    1. Android Virtual Device Manager'i aç.
    2. Aşağıdaki ayarlarla yeni AVD yarat:
    3. Yaratılmış AVDi başlat.
  8. google servis paketlerini kur; gms and vending
    1. Emülatörün başladığından emin ol.
    2. Ekteki com.google.android.gms-19032013.apk ve com.google.android.vending-19032013.apk dosyalarını <bundle kök klasör>\sdk\platform-tools adresine kopyala.
    3. Command prompt'u başlat ve  <bundle kök klasör>\sdk\platform-tools adresine git.
    4. daha sonra adb install com.google.android.gms-19032013.apk komutunu çalıştır.

       
    5. adb install com.android.vending-19032013.apk komutunu çalıştır.
    6. Eğer zaten kurulu diyorsa aşağıdaki komutlarla kaldır
      • adb uninstall com.android.vending
      • adb uninstall com.google.android.gms
  9. AndroidManifest.xml dosyasını düzenle
    1. androidmanifest.xml dosyasına çift tıkla.
    2. androidmanifest.xml dosyasına gerekli permission ve glEs feature'ü ekle.
       <permission
              android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"
              android:protectionLevel="signature"></permission>
          <uses-permission
              android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/>
          <uses-permission
              android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
          <uses-permission
              android:name="android.permission.INTERNET"/>
          <uses-permission
              android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
          <uses-permission
              android:name="android.permission.ACCESS_COARSE_LOCATION"/>
          <uses-permission
              android:name="android.permission.ACCESS_FINE_LOCATION"/>
          <uses-feature
              android:glEsVersion="0x00020000"
              android:required="true"/>
    3. map api için application'da metadata yarat.
      <meta-data  android:name="com.google.android.maps.v2.API_KEY"
      android:value="AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI"/>
    4. androidmanifest.xml sonunda şağıdaki gibi görünecek:
       <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="info.tekguc.umut.googlemapsmapsandroidv2"
          android:versionCode="1"
          android:versionName="1.0" >
          <uses-sdk
              android:minSdkVersion="14"
              android:targetSdkVersion="17" />
              <permission
              android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"
              android:protectionLevel="signature"></permission>
          <uses-permission
              android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/>
          <uses-permission
              android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
          <uses-permission
              android:name="android.permission.INTERNET"/>
          <uses-permission
              android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
          <uses-permission
              android:name="android.permission.ACCESS_COARSE_LOCATION"/>
          <uses-permission
              android:name="android.permission.ACCESS_FINE_LOCATION"/>
          
          <uses-feature
              android:glEsVersion="0x00020000"
              android:required="true"/>
          
          <application
              android:allowBackup="true"
              android:icon="@drawable/ic_launcher"
              android:label="@string/app_name"
              android:theme="@style/AppTheme" >
                <meta-data
                  android:name="com.google.android.maps.v2.API_KEY"
                  android:value="AIzaSyDciL7-T3BphxGv2q-A77vNrcyJQ_sTrgI"/>
              <activity
                  android:name="info.tekguc.umut.googlemapsmapsandroidv2.MainActivity"
                  android:label="@string/app_name" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
      
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
          </application>
      
      </manifest>
  10. activity_main.xml'i düzenle
    1. activity_main.xml üzerinde çift tıkla

    2. Map fragment ekle
       <fragment
        android:id="@+id/map"        
        android:layout_width="match_parent"        
        android:layout_height="match_parent"        
        class="com.google.android.gms.maps.MapFragment"/>
    3. activity_main.xml aşağıdaki gibi görünecek:
       <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"    
      android:paddingBottom="@dimen/activity_vertical_margin"    
      android:paddingLeft="@dimen/activity_horizontal_margin"    
      android:paddingRight="@dimen/activity_horizontal_margin"    
      android:paddingTop="@dimen/activity_vertical_margin"    
      tools:context=".MainActivity" >
      <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.MapFragment"/>
      </RelativeLayout>
  11. MainActivity.Java'yı düzenle
    1. mainactivity.java'a çift tıkla

    2. importları ekle
      import com.google.android.gms.maps.GoogleMap;
      import com.google.android.gms.maps.MapFragment;
      import com.google.android.gms.maps.model.LatLng;
      import com.google.android.gms.maps.model.Marker;
      import com.google.android.gms.maps.model.MarkerOptions;
    3. GoogleMap objesini ekle
      private GoogleMap mMap;
    4. Aşağıdaki kodu onCreate()'e ekle. Bu kod haritayı göstermek için şart değil ama örnek kullanım olsun diye konmuştur.
       mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
                  mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
                  final LatLng CIU = new LatLng(35.21843892856462, 33.41662287712097);
                  Marker ciu = mMap.addMarker(new MarkerOptions()
                                            .position(CIU).title("My Office"));
    5. mainactivity.java aşağıdaki gibi görünecek:
       package info.tekguc.umut.googlemapsmapsandroidv2; 
      import android.os.Bundle; 
      import android.app.Activity; 
      import android.view.Menu; 
      import com.google.android.gms.maps.GoogleMap; 
      import com.google.android.gms.maps.MapFragment; 
      import com.google.android.gms.maps.model.LatLng; 
      import com.google.android.gms.maps.model.Marker; 
      import com.google.android.gms.maps.model.MarkerOptions; 
      public class MainActivity extends Activity {     
      private GoogleMap mMap;         
      @Override     
      protected void onCreate(Bundle savedInstanceState) {         
      super.onCreate(savedInstanceState);         
      setContentView(R.layout.activity_main);             
      mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();         
      mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);         
      final LatLng CIU = new LatLng(35.21843892856462, 33.41662287712097);         
      Marker ciu = mMap.addMarker(new MarkerOptions()                                   
      .position(CIU).title("My Office"));     
      }     
      @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;     } } 
  12. Uygulamayı çalıştır.
    1. Application üstünde sağ tıkla ve run as -->android application seç.

    2. Aşağıdaki gibi bir çıktı göreceksiniz:

    3. Ekteki projeye bakınız.