Android Studio için Google Haritalar şablonunu kullanarak harita görüntüleyen bir Android uygulaması oluşturun. Ayarlamak istediğiniz mevcut bir Android Studio projeniz varsa Proje Yapılandırması'na bakın.
Bu hızlı başlangıç kılavuzu, Java veya Kotlin ile temel Android geliştirme konusunda bilgi sahibi olan geliştiriciler için hazırlanmıştır.
Geliştirme ortamını ayarlama
- Android Studio Arctic Fox veya daha yeni bir sürüm gerekir. Henüz yapmadıysanız indirin ve yükleyin.
- Android Studio'da Android Gradle eklentisini 7.0 veya daha yeni bir sürümünü kullandığınızdan emin olun.
Android cihaz kurulumu
Android için Haritalar SDK'sını kullanan bir uygulamayı çalıştırmak istiyorsanız bu uygulamayı, Google API'lerini içeren ve Android 4.0 ya da sonraki bir sürümü temel alan bir Android cihaza ya da Android emülatörüne dağıtmanız gerekir.
- Android cihaz kullanmak için Uygulamaları donanım cihazında çalıştırma başlıklı makaledeki talimatları uygulayın.
- Android emülatörü kullanmak için sanal bir cihaz oluşturabilir ve Android Studio ile birlikte gelen Android Virtual Device (AVD) Manager'ı kullanarak emülatörü yükleyebilirsiniz.
Android Studio'da Google Haritalar projesi oluşturma
Android Studio'da Google Haritalar projesi oluşturma prosedürü Flamingo'da ve Android Studio'nun sonraki sürümlerinde değiştirildi. Android Studio'nun kendi sürümünüz için aşağıdaki adımları uyguladığınızdan emin olun.
Android Studio'yu açın ve Android Studio'ya hoş geldiniz penceresinde Yeni Proje Oluştur'u tıklayın.
Yeni Proje penceresindeki Telefon ve Tablet kategorisinde Boş Etkinlik'i seçip İleri'yi tıklayın.
Google Haritalar Etkinliği formunu doldurun:
Dil'i Java veya Kotlin olarak ayarlayın. Her iki dil de Android için Haritalar SDK'sı tarafından tam olarak desteklenir. Kotlin hakkında daha fazla bilgi edinmek için Kotlin ile Android uygulamaları geliştirme bölümüne bakın.
Minimum SDK'yı, test cihazınızla uyumlu bir SDK sürümüne ayarlayın. Android API düzeyi 19 (Android 4.4, KitKat) veya daha üst bir sürüm olan, Android için Haritalar SDK'sı 18.0.x sürümü için gereken minimum sürümden daha yüksek bir sürüm seçmeniz gerekir. SDK sürümü gereksinimleriyle ilgili en son bilgiler için Sürüm Notları'na bakın.
-
Son'u tıklayın.
Android Studio, Gradle'ı başlatır ve projeyi oluşturur. Bu işlem zaman alabilir.
Derleme tamamlandığında Android Studio
AndroidManifest.xmlve
MapsActivitydosyalarını açar. Etkinliğinizin farklı bir adı olabilir, ancak kurulum sırasında yapılandırdığınız addır.
Google Haritalar Görüntüleme Etkinliği'ni ekleyin:
- Google Haritalar Görünüm Etkinliği'ni eklemek istediğiniz paketi sağ tıklayın.
- Yeni > Google > Google Haritalar Görüntüleme Etkinliği'ni seçin.
Daha fazla bilgi için Şablondan kod ekleme bölümüne bakın
AndroidManifest.xmldosyası, bir Google Haritalar API anahtarı alma ve bu anahtarı local.properties dosyanıza ekleme talimatlarını içerir. API anahtarınızı
AndroidManifest.xmldosyasına eklemeyin. Bu şekilde API anahtarınız daha az güvenli bir şekilde depolanır. Bunun yerine, bir Cloud projesi oluşturmak ve API anahtarı yapılandırmak için sonraki bölümlerde yer alan talimatları uygulayın.
Google Cloud projenizi oluşturun
Aşağıdaki sekmeleri tıklayarak gerekli Cloud Console kurulum adımlarını tamamlayın:
1. Adım
Konsol
-
Yeni bir Cloud projesi oluşturmaya başlamak için Google Cloud Console'daki proje seçici sayfasında Proje Oluştur'u tıklayın.
-
Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Projeniz için faturalandırmanın etkin olduğunu onaylayın.
Google Cloud, 0,00 ABD doları tutarında ücretsiz deneme süresi sunar. Deneme süresi, 90 günün sonunda veya hesaba 300 ABD doları tutarında maliyet tahakkuk ettikten sonra (hangisi önce gerçekleşirse) sona erer. Dilediğiniz zaman iptal edebilirsiniz. Google Haritalar Platformu'nda aylık 200 ABD doları değerinde yinelenen bir kredi bulunur. Daha fazla bilgi için Faturalandırma hesabı kredileri ve Faturalandırma bölümlerine bakın.
Google Cloud SDK
gcloud projects create "PROJECT"
2. Adım
Google Haritalar Platformu'nu kullanmak için projenizde kullanmayı planladığınız API'leri veya SDK'ları etkinleştirmeniz gerekir.
Konsol
Google Cloud SDK
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
3. Adım
Bu adım yalnızca API Anahtarı oluşturma sürecinden geçer. API Anahtarınızı üretim için kullanıyorsanız API anahtarınızı kısıtlamanızı kesinlikle öneririz. Daha fazla bilgiyi ürüne özel API Anahtarlarını Kullanma sayfasında bulabilirsiniz.
API anahtarı, kullanım ve faturalandırma amaçları doğrultusunda projenizle ilişkili isteklerin kimliğini doğrulayan benzersiz bir tanımlayıcıdır. Projenizle ilişkilendirilmiş en az bir API anahtarınız olmalıdır.
API anahtarı oluşturmak için:
Konsol
-
Google Haritalar Platformu > Kimlik Bilgileri sayfasına gidin.
-
Kimlik bilgileri sayfasında Kimlik bilgileri oluştur > API anahtarı'nı tıklayın.
API anahtarı oluşturuldu iletişim kutusunda, yeni oluşturduğunuz API anahtarı gösterilir.
-
Kapat'ı tıklayın.
Yeni API anahtarı, Kimlik bilgileri sayfasındaki API anahtarları altında listelenir.
(Üretimde kullanmadan önce API anahtarını kısıtlamayı unutmayın.)
Google Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Uygulamanıza API anahtarını ekleyin
Bu bölümde, uygulamanızın güvenli bir şekilde başvuruda bulunabilmesi için API anahtarınızı nasıl depolayacağınız açıklanmaktadır. API anahtarınızı sürüm kontrol sisteminize kontrol etmemeniz gerekir. Bu nedenle, projenizin kök dizininde bulunan
secrets.properties dosyasında saklamanızı öneririz.
secrets.properties dosyası hakkında daha fazla bilgi edinmek için Gradle özellik dosyaları bölümüne bakın.
Bu görevi kolaylaştırmak için Android için Secrets Gradle Plugin'i kullanmanızı öneririz.
Google Haritalar projenize Android için Secrets Gradle Eklentisi'ni yüklemek için:
- Android Studio'da proje düzeyindeki
build.gradledosyanızı açın ve aşağıdaki kodu
buildscriptaltındaki
dependenciesöğesine ekleyin.
Modern
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
- Modül düzeyindeki
build.gradledosyanızı açıp
pluginsöğesine aşağıdaki kodu ekleyin.
Modern
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
- Proje düzeyindeki dizininizde
secrets.propertiesdosyasını açın ve ardından aşağıdaki kodu ekleyin.
YOUR_API_KEYöğesini API anahtarınızla değiştirin.
MAPS_API_KEY=YOUR_API_KEY
- Dosyayı kaydedin.
AndroidManifest.xmldosyanızda
com.google.android.geo.API_KEYbölümüne gidip
android:value attributedeğerini şu şekilde güncelleyin:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
İsteğe bağlı olarak, farklı bir gizli anahtar dosyası veya diğer özellikleri belirtmek için eklentinin özelliklerini düzenleyin. Android Studio'da, proje düzeyindeki
build.gradledosyanızı açın ve
secretsözelliğini düzenleyin:
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = 'local.defaults.properties' // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Not: Yukarıda gösterildiği gibi, API anahtarı için önerilen meta veri adı
com.google.android.geo.API_KEY'dir. Bu ada sahip bir anahtar, Android için Haritalar SDK'sı dahil olmak üzere Android platformundaki birden fazla Google Haritalar tabanlı API'nin kimliğini doğrulamak için kullanılabilir. API, geriye dönük uyumluluk için
com.google.android.maps.v2.API_KEY adını da destekler. Bu eski ad, yalnızca Android Maps API v2 ile kimlik doğrulaması yapılmasına izin verir. Bir uygulama, API anahtarı meta veri adlarından yalnızca birini belirtebilir. Her ikisi de belirtilirse API bir istisna oluşturur.
Koda bakın
Şablon tarafından sağlanan kodu inceleyin. Özellikle Android Studio projenizde aşağıdaki dosyalara bakın.
Haritalar etkinlik dosyası
Haritalar etkinlik dosyası, uygulamanın ana etkinliğidir ve haritayı yönetip görüntülemek için gereken kodu içerir. Varsayılan olarak, etkinliği tanımlayan dosyanın adı
MapsActivity.java veya Kotlin'i uygulamanızın dili olarak
MapsActivity.kt olarak ayarlarsanız.
Harita etkinliğinin ana öğeleri:
SupportMapFragmentnesnesi haritanın yaşam döngüsünü yönetir ve uygulama kullanıcı arayüzünün üst öğesidir.
GoogleMapnesnesi, harita verilerine ve görünümüne erişim sağlar. Bu, Android için Haritalar SDK'sının ana sınıfıdır. Harita Nesneleri kılavuzu,
SupportMapFragmentve
GoogleMapnesnelerini daha ayrıntılı olarak açıklar.
moveCameraişlevi, haritayı Sidney Avustralya için
LatLngkoordinatlarında ortalar. Harita eklerken yapılandırılacak ilk ayarlar genellikle harita konumu ve kamera ayarlarıdır (ör. görüntüleme açısı, harita yönü ve yakınlaştırma düzeyi). Ayrıntılar için Kamera ve Görüntüleme kılavuzuna bakın.
Haritalar etkinlik dosyası şu kodu içerir:
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions internal class MapsActivity : AppCompatActivity(), OnMapReadyCallback { private lateinit var mMap: GoogleMap override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) // Obtain the SupportMapFragment and get notified when the map is ready to be used. val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap // Add a marker in Sydney and move the camera val sydney = LatLng(-34.0, 151.0) mMap.addMarker(MarkerOptions() .position(sydney) .title("Marker in Sydney")) mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)) } }
Java
import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; // Add a marker in Sydney and move the camera LatLng sydney = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions() .position(sydney) .title("Marker in Sydney")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); } }
Modül Gradle dosyası
build.gradle Modül dosyası, Android için Haritalar SDK'sının gerektirdiği aşağıdaki harita bağımlılığını içerir.
dependencies { // Maps SDK for Android implementation 'com.google.android.gms:play-services-maps:18.2.0' }
Haritalar bağımlılığını yönetme hakkında daha fazla bilgi edinmek için Sürüm oluşturma başlıklı makaleyi inceleyin.
XML düzen dosyası
activity_maps.xml dosyası, uygulamanın kullanıcı arayüzü yapısını tanımlayan XML düzen dosyasıdır. Dosya
res/layout dizininde bulunuyor.
activity_maps.xml dosyası, aşağıdaki öğeleri içeren bir parça tanımlıyor:
tools:context, parçanın varsayılan etkinliğini harita etkinlik dosyasında tanımlanan
MapsActivityolarak ayarlar.
android:name, parçanın sınıf adını
SupportMapFragmentolarak ayarlar. Bu, haritalar etkinlik dosyasında kullanılan parça türüdür.
XML düzen dosyası şu kodu içerir:
<fragment 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:id="@+id/map" tools:context=".MapsActivity" android:name="com.google.android.gms.maps.SupportMapFragment" />
Uygulamayı dağıtma ve çalıştırma
Uygulamayı başarılı bir şekilde çalıştırdığınızda, merkezde Sidney Avustralya'yı gösteren bir harita görüntülenir ve aşağıdaki ekran görüntüsünde görüldüğü gibi şehirde bir işaretçi bulunur.
Uygulamayı dağıtmak ve çalıştırmak için:
- Android Studio'da, uygulamanızı çalıştırmak için Çalıştır menü seçeneğini (veya oynat düğmesi simgesini) tıklayın.
- Bir cihaz seçmeniz istendiğinde aşağıdaki seçeneklerden birini belirleyin:
- Bilgisayarınıza bağlı Android cihazı seçin.
- Alternatif olarak Emülatörü başlat radyo düğmesini seçin ve ayarladığınız sanal cihazı seçin.
- OK (Tamam) seçeneğini tıklayın. Android Studio, uygulamanızı oluşturmak için Gradle'ı başlatır ve ardından sonuçları cihazınızda veya emülatörünüzde görüntüler. Uygulamanın başlatılması birkaç dakika sürebilir.
Sonraki adımlar
Harita oluşturma: Bu konuda, haritanız için kamera konumu, harita türü, kullanıcı arayüzü bileşenleri ve hareketler gibi ilk ve çalışma zamanı ayarlarını nasıl yapacağınız açıklanmaktadır.
Android uygulamanıza harita ekleyin (Kotlin): Bu codelab, Android için Haritalar SDK'sının bazı ek özelliklerini gösteren bir uygulamada size yol gösterir.
Haritalar Android KTX kitaplığını kullanın: Bu Kotlin uzantı (KTX) kitaplığı, Android için Haritalar SDK'sını kullanırken çeşitli Kotlin dil özelliklerinden yararlanmanızı sağlar.