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ı bölümüne bakın.
Bu hızlı başlangıç kılavuzu, Java veya Kotlin ile temel Android geliştirme konusunda bilgi sahibi olan geliştiricilere yöneliktir.
Geliştirme ortamını ayarlama
- Android Studio Arctic Fox veya üzeri gereklidir. Henüz yapmadıysanız indirin ve yükleyin.
- Android Studio'da Android Gradle eklentisinin 7.0 veya sonraki bir sürümünü kullandığınızdan emin olun.
Android cihaz kur
Android için Haritalar SDK'sını kullanan bir uygulamayı çalıştırmak için uygulamayı Android 4.0 veya sonraki bir sürümü kullanan ve Google API'lerini içeren bir Android emülatörüne dağıtmanız gerekir.
- Android cihaz kullanmak için Uygulamaları bir donanım cihazında çalıştırma başlıklı makaledeki talimatları uygulayın.
- Android emülatörü kullanmak için bir sanal cihaz oluşturabilir ve Android Studio ile birlikte sunulan Android Sanal Cihaz (AVD) Yöneticisi'ni kullanarak emülatörü yükleyebilirsiniz.
Android Studio'da Google Haritalar projesi oluşturma
Android Studio'yu açın ve Android Studio'ya hoş geldiniz penceresinde Yeni Proje Oluştur'u tıklayın.
Yeni Proje penceresinde, Telefon ve Tablet kategorisinin altında Google Haritalar Etkinliği'ni 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 desteklenmektedir. Kotlin hakkında daha fazla bilgi edinmek için Kotlin ile Android uygulamaları geliştirme konusuna bakın.
Minimum SDK'yı test cihazınızla uyumlu bir SDK sürümüne ayarlayın. Android'in 18.0.x sürümü için Haritalar SDK'sının gerektirdiği, şu anda Android API Seviye 19 (Android 4.4, KitKat) veya sonraki bir sürümü seçmeniz gerekir. SDK sürümü gereksinimleri hakkında en güncel bilgiler için Sürüm Notları'na göz atı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.xml
veMapsActivity
dosyalarını açar. Etkinliğiniz farklı bir ada sahip olabilir ancak kurulum sırasında yapılandırdığınız ad olacaktır.AndroidManifest.xml
dosyası, bir Google Haritalar API anahtarı alma ve bunu local.property dosyanıza ekleme ile ilgili talimatları içerir. API anahtarınızıAndroidManifest.xml
dosyasına eklemeyin. Böylece, API anahtarınızı daha az güvenli bir şekilde saklarsınız. Bunun yerine, 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şturma
Aşağıdaki sekmeleri tıklayarak gereken Cloud Console kurulum adımlarını tamamlayın:
1. Adım
Konsol
-
Google Cloud Console'da proje seçme sayfasına giderek yeni bir Cloud projesi oluşturmaya başlamak için Create Project'i (Proje Oluştur) tıklayın.
-
Cloud projeniz için faturalandırmanın etkin olduğundan emin olun. Projeniz için faturalandırmanın etkin olduğunu onaylayın.
Google Cloud, ücretsiz deneme sürümü sunar. Deneme süresinin sona ermesi, 90 günün sonunda veya hesaba 300 ABD Doları değerinde ücret tahakkuk ettikten sonra (hangisi önce gerçekleşirse) sona erer. Dilediğiniz zaman iptal edebilirsiniz. Google Haritalar Platformu'nda yinelenen aylık 200 ABD doları 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"
Google Cloud SDK, Google Cloud SDK kurulumu ve aşağıdaki komutlar hakkında daha fazla bilgi edinin:
2. Adım
Google Haritalar Platformu'nu kullanmak için projenizle 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"
Google Cloud SDK, Google Cloud SDK kurulumu ve aşağıdaki komutlar hakkında daha fazla bilgi edinin:
3. Adım
Bu adım, yalnızca API Anahtarı oluşturma işleminde uygulanır. API anahtarınızı üretimde kullanıyorsanız API anahtarınızı kısıtlamanızı önemle tavsiye ederiz. Ürüne özel API Anahtarlarını Kullanma sayfasında daha fazla bilgi bulabilirsiniz.
API anahtarı, kullanım ve faturalandırma amacıyla projenizle ilişkilendirilen 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 bilgisi oluştur > API anahtarı'nı tıklayın.
API anahtarı oluşturuldu iletişim kutusunda yeni oluşturulan API anahtarı gösterilir. -
Kapat'ı tıklayın.
Yeni API anahtarı, Kimlik bilgileri sayfasındaki API anahtarları bölümünde listelenir.
(Üretimde kullanmadan önce API API'sini kısıtlamayı unutmayın.)
Google Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Google Cloud SDK, Google Cloud SDK kurulumu ve aşağıdaki komutlar hakkında daha fazla bilgi edinin:
API anahtarını uygulamanıza ekleme
Bu bölümde, API anahtarınızın uygulamanız tarafından güvenli bir şekilde referans alınabilmesi için nasıl depolanacağı açıklanmaktadır. API anahtarınızı sürüm kontrol sisteminize kontrol etmemeniz gerekir. Bu nedenle, anahtarı projenizin kök dizininde bulunan local.properties
dosyasında depolamanızı öneririz. local.properties
dosyası hakkında daha fazla bilgi için Gradle mülklerindeki dosyalar bölümüne bakın.
Bu görevi kolaylaştırmak için Secrets Gradle Plugin for Android'i kullanmanızı öneririz. Eklentiyi yüklemek ve API anahtarınızı depolamak için:
- Android Studio'da proje düzeyindeki
build.gradle
dosyanızı açın ve aşağıdaki kodubuildscript
altındakidependencies
öğesine ekleyin.plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
- Ardından, modül düzeyindeki
build.gradle
dosyanızı açın ve aşağıdaki koduplugins
öğesine ekleyin.id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
- Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
- Proje düzeyindeki dizininizde
local.properties
öğesini açın, ardından aşağıdaki kodu ekleyin.YOUR_API_KEY
yerine API anahtarınızı yazın.MAPS_API_KEY=YOUR_API_KEY
- Dosyayı kaydedin.
AndroidManifest.xml
dosyanızdacom.google.android.geo.API_KEY
konumuna gidipandroid:value attribute
dosyasını aşağıdaki gibi güncelleyin:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Not: Yukarıda gösterildiği gibi, API anahtarı için önerilen meta veri adı com.google.android.geo.API_KEY
. Bu ada sahip bir anahtar, Android platformundaki Haritalar SDK'sı da dahil olmak üzere Android platformunda birden fazla Google Haritalar tabanlı API'de kimlik doğrulaması yapmak 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'de kimlik doğrulamaya olanak tanır. Bir uygulama, API anahtarı meta veri adlarından yalnızca birini belirtebilir. Her ikisi de belirtilirse API bir istisna atar.
Koda bakın
Şablon tarafından sağlanan kodu inceleyin. Özellikle Android Studio projenizde aşağıdaki dosyalara bakın.
Haritalar etkinlik dosyası
Harita etkinliği dosyası, uygulamanın ana etkinliğidir ve haritayı yönetmek ve görüntülemek için kullanılacak kodu içerir. Varsayılan olarak, etkinliği tanımlayan dosyanın adı MapsActivity.java
veya Kotlin'i uygulamanızın dili olan MapsActivity.kt
olarak ayarlarsanız.
Haritalar etkinliğinin ana öğeleri:
SupportMapFragment
nesnesi, haritanın yaşam döngüsünü yönetir ve uygulamanın kullanıcı arayüzünün üst öğesidir.GoogleMap
nesnesi, harita verilerine ve görünüme erişim sağlar. Bu, Android için Haritalar SDK'sının ana sınıfıdır. Harita Nesneleri kılavuzunda,SupportMapFragment
veGoogleMap
nesneleri daha ayrıntılı olarak açıklanmaktadır.moveCamera
işlevi, haritayı Sidney Avustralya'nınLatLng
koordinatlarına 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ünüm kılavuzuna bakın.addMarker
işlevi, Sidney koordinatlarına bir işaretçi ekler. Ayrıntılar için İşaretçiler kılavuzuna bakın.
Haritalar etkinliği dosyası şu kodu içerir:
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)); } }
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)) } }
Module 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 { implementation 'com.google.android.gms:play-services-maps:18.1.0' // ... }
Haritalar'a bağımlılığı yönetme hakkında daha fazla bilgi için Sürüm oluşturma konusuna bakın.
XML düzeni dosyası
activity_maps.xml
dosyası, uygulamanın kullanıcı arayüzünün yapısını tanımlayan XML düzen dosyasıdır. Dosya, res/layout
dizininde bulunur.
activity_maps.xml
dosyası, aşağıdaki öğeleri içeren bir parça bildirir:
tools:context
, parçanın varsayılan etkinliğini haritalar etkinliği dosyasında tanımlananMapsActivity
olarak ayarlar.android:name
, parçanın sınıf adını haritalar etkinliği dosyasında kullanılan parça türü olanSupportMapFragment
olarak ayarlar.
XML düzeni dosyası aşağıdaki 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ğıtın ve çalıştırın
Uygulamayı başarıyla çalıştırdığınızda, aşağıdaki ekran görüntüsünde görüldüğü gibi, şehir üzerinde bir işaretleyiciyle birlikte Sidney Avustralya merkezli bir harita görüntülenir.
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, Emulator'ı başlat radyo düğmesini 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 konu, haritanızın başlangıç ve çalışma zamanı ayarlarını (ör. kamera konumu, harita türü, kullanıcı arayüzü bileşenleri ve hareketler) nasıl ayarlayacağınızı açıklar.
Android uygulamanıza bir harita ekleme (Kotlin): Bu codelab'de, Android için Haritalar SDK'sının bazı ek özelliklerini gösteren bir uygulama adım adım açıklanmaktadır.
Haritalar Android KTX kitaplığını kullanın: Bu Kotlin uzantıları (KTX) kitaplığı, Android için Haritalar SDK'sını kullanırken çeşitli Kotlin dil özelliklerinden yararlanmanızı sağlar.