Bu makalede, Android için Haritalar SDK'sı kullanılarak Android uygulamasına eklenen bir haritanın nasıl yapılandırılacağı açıklanmaktadır.
Genel bakış
Uygulamanıza harita ekledikten sonra haritanın ilk ve çalışma zamanı ayarlarını yapılandırabilirsiniz. İlk ayarlar, harita kapsayıcısını (
SupportMapFragment
veya MapView
) statik veya dinamik olarak ekleyip eklemediğinize bağlı olarak yapılandırılmalıdır. Harita kapsayıcısı statik olarak eklendiyse, düzen dosyasında ilk harita ayarlarını yapılandırabilirsiniz.
Dinamik olarak eklenmişse OnCreate
geri çağırmasındaki ilk ayarları bir GoogleMapOptions
nesnesiyle yapılandırabilirsiniz.
Harita kapsayıcı eklemeyle ilgili ayrıntılı bilgi için Harita ekleme başlıklı makaleye bakın.
İlk harita ayarları aşağıdakileri içerir:
- Kamera konumu (konum, yakınlaştırma, dayanma ve yana yatırma). Kamera konumlandırmayla ilgili ayrıntılı bilgi için Kamera ve Görünüm konusuna bakın.
- Harita türü.
- Yakınlaştırma düğmeleri ve pusula gibi kullanıcı arayüzü bileşenleri.
- Etkinleştirilecek hareketler.
- Basit modun etkinleştirilip etkinleştirilmediği.
Çalışma zamanında, onMapReady
geri çağırmasındaki GoogleMap
nesnesini güncelleyerek bu ayarları ve bazı ek ayarları yapılandırabilirsiniz. Ek ayarlar, trafik katmanını ve harita dolgusunu yapılandıran ayarlar gibi GoogleMap
sınıfı yöntemleriyle yapılandırılır.
Örnek
Aşağıdaki örnek kodda ve yukarıdaki ekran görüntüsünde yer alan harita, aşağıdaki ayarlarla yapılandırılır.
İlk ayarlar düzen dosyasında yapılandırılır:
- Yakınlaştırma kontrollerini etkinleştir
- Hareket döndürme kontrollerini etkinleştir.
- Harita eğimini 30 olarak ayarlayın.
Çalışma zamanı ayarları:
- Kamerayı Kyoto Japan'e ortalayın.
- Karma harita türünü etkinleştirin.
- Trafik katmanını açın.
İlk ayarlar
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:name="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" map:uiZoomControls="true" map:uiRotateGestures="true" map:cameraTilt="30" />
Çalışma zamanı ayarları
package com.example.mapsetup; 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; public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } // Update the map configuration at runtime. @Override public void onMapReady(GoogleMap googleMap) { // Set the map coordinates to Kyoto Japan. LatLng kyoto = new LatLng(35.00116, 135.7681); // Set the map type to Hybrid. googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); // Add a marker on the map coordinates. googleMap.addMarker(new MarkerOptions() .position(kyoto) .title("Kyoto")); // Move the camera to the map coordinates and zoom in closer. googleMap.moveCamera(CameraUpdateFactory.newLatLng(kyoto)); googleMap.moveCamera(CameraUpdateFactory.zoomTo(15)); // Display traffic. googleMap.setTrafficEnabled(true); } }
Başlamadan önce
Başlamadan önce bir proje oluşturabilir ve aşağıdaki seçenekler üzerinden temel bir harita ekleyebilirsiniz:
Android Studio için Haritalar şablonunu kullanarak bir uygulama oluşturun. Haritalar şablonu, projenizi otomatik olarak yapılandırır ve temel bir harita ekler. Parça, harita kapsayıcısı olarak kullanılır ve statik olarak eklenir. Ayrıntılar için hızlı başlangıç sayfasına göz atın.
SDK için manuel olarak projenizi yapılandırın ve temel harita ekleyin. Bu sayede, herhangi bir Android şablonunu kullanabilir ve mevcut bir uygulamaya eşleme ekleyebilirsiniz.
Bir haritayı statik olarak ekledikten sonra yapılandırma
Bu bölümde, düzeni düzen dosyanıza statik olarak eklediyseniz haritanın ilk durumunun nasıl ayarlanacağı açıklanmaktadır.
Android için Haritalar SDK'sı, haritanın ilk durumunu doğrudan düzen dosyasından yapılandırmak üzere kullanabileceğiniz SupportMapFragment
veya MapView
için bir özel XML özelliği grubu tanımlar. Aşağıdaki özellikler şu anda tanımlanmıştır:
mapType
- Gösterilecek harita türü. Geçerli değerler şunlardır:none
,normal
,hybrid
,satellite
veterrain
.cameraTargetLat
,cameraTargetLng
,cameraZoom
,cameraBearing
,cameraTilt
- Başlangıçtaki kamera konumu. Ayrıntılar için kamera ve görünümler kılavuzuna bakın.uiZoomControls
,uiCompass
— Yakınlaştırma kontrolleri ve pusulanın gösterilip gösterilmeyeceğini belirtir. Ayrıntılar içinUiSettings
sayfasını inceleyin.uiZoomGestures
,uiScrollGestures
,uiRotateGestures
,uiTiltGestures
: Belirli hareketlerin etkinleştirilip etkinleştirilmediğini belirtir. Ayrıntılar içinUiSettings
sayfasını inceleyin.zOrderOnTop
: Harita görünümünün; harita penceresinin, harita denetimlerinin ve penceredeki herhangi bir nesnenin üst kısmında görüntülenip görüntülenmeyeceğini belirtir. Ayrıntılar için SurfaceView.setZOrderOnTop(boo) adresine bakın.useViewLifecycle
: YalnızcaSupportMapFragment
nesne için geçerlidir. Haritanın yaşam döngüsünün parçanın görünümüne mi yoksa parçanın kendisine mi bağlanması gerektiğini belirtir. Ayrıntılar için buraya göz atın.liteMode
-true
(Basit modu etkinleştirmek içintrue
); aksi haldefalse
.
Bu özel özellikleri düzen dosyanızda kullanmak için aşağıdaki ad alanı beyanını içermelidir. Dilediğiniz ad alanını seçebilirsiniz. Adın map
olması gerekmez:
xmlns:map="http://schemas.android.com/apk/res-auto"
Daha sonra, düzen dosyanıza map:
ön eki içeren özellikler ekleyebilirsiniz.
Aşağıdaki düzen dosyası, özel eşleme özellikleriyle bir SupportMapFragment
nesnesini yapılandırır. Aynı özellikler bir MapView
nesnesine de uygulanabilir.
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraBearing="112.5"
map:cameraTargetLat="-33.796923"
map:cameraTargetLng="150.922433"
map:cameraTilt="30"
map:cameraZoom="13"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="false"
map:uiTiltGestures="true"
map:uiZoomControls="false"
map:uiZoomGestures="true"/>
Bir haritayı dinamik olarak ekledikten sonra yapılandırma
Bu bölümde, uygulamayı uygulamanıza dinamik olarak eklediyseniz haritanın ilk durumunu nasıl ayarlayacağınız açıklanmaktadır.
Dinamik olarak bir SupportMapFragment
veya MapView
eklediyseniz haritanın ilk durumunu bir GoogleMapOptions
nesnesinde ayarlayabilirsiniz. Kullanılabilen seçenekler, düzen dosyasında bulunan seçeneklerle aynıdır.
Aşağıdaki şekilde bir GoogleMapOptions
oluşturabilirsiniz:
Java
GoogleMapOptions options = new GoogleMapOptions();
Kotlin
val options = GoogleMapOptions()
Ardından aşağıdaki gibi yapılandırın:
Java
options.mapType(GoogleMap.MAP_TYPE_SATELLITE) .compassEnabled(false) .rotateGesturesEnabled(false) .tiltGesturesEnabled(false);
Kotlin
options.mapType(GoogleMap.MAP_TYPE_SATELLITE) .compassEnabled(false) .rotateGesturesEnabled(false) .tiltGesturesEnabled(false)
Harita oluştururken bu seçenekleri uygulamak için aşağıdakilerden birini yapın:
SupportMapFragment
kullanıyorsanız parçayı oluşturmak ve ayarlarınızda iletmek içinSupportMapFragment.newInstance(GoogleMapOptions options)
statik fabrika yöntemi yöntemini kullanın.MapView
kullanıyorsanızMapView(Context, GoogleMapOptions)
oluşturucuyu kullanın ve ayarlarınızı geçirin.
Trafik katmanını ayarlama
Trafik katmanını etkinleştirerek haritanızdaki trafik verilerini görüntüleyebilirsiniz. setTrafficEnabled()
yöntemini çağırarak trafik katmanını etkinleştirebilir ve devre dışı bırakabilirsiniz. Ayrıca, isTrafficEnabled()
yöntemini çağırarak trafik katmanının şu anda etkin olup olmadığını belirleyebilirsiniz. Aşağıdaki ekran görüntüsünde, trafik katmanının etkin olduğu bir harita gösterilmektedir.
Harita türünü ayarlama
Harita türünü ayarlamak için setMapType
yöntemini çağırın.
Örneğin, bir uydu haritasını görüntülemek için:
Java
// Sets the map type to be "hybrid" map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
Kotlin
// Sets the map type to be "hybrid" map.mapType = GoogleMap.MAP_TYPE_HYBRID
Aşağıdaki görsel normal, karma ve arazi haritası türlerini karşılaştırır:

3D binalar oluşturma
Yakından görüntülenen çoğu şehirde 3D binalar, Vancouver, Kanada'daki aşağıdaki resimde görüldüğü gibi görülebilir. GoogleMap.setBuildingsEnabled(false)
numaralı telefonu arayarak 3D binaları devre dışı bırakabilirsiniz.

İç mekan harita ayarlarını yapma
Yüksek yakınlaştırma düzeylerinde harita; havalimanları, alışveriş merkezleri, büyük perakende mağazaları ve toplu taşıma istasyonları gibi iç mekanlar için inşaat planlarını gösterir. İç mekan haritaları olarak adlandırılan bu kat planları, "normal" ve "uydu" harita türleri (GoogleMap.MAP_TYPE_NORMAL
ve GoogleMap.MAP_TYPE_SATELLITE
) için gösterilir. Kullanıcı görüntüyü yakınlaştırdığında otomatik olarak etkinleştirilir ve harita uzaklaştırıldığında uzaklaşır.
Kullanımdan kaldırma bildirimi: Gelecekteki bir sürümde iç mekan haritaları yalnızca normal
harita türünde kullanılabilecektir. Bu gelecekteki sürümden sonra iç mekan haritaları satellite
, terrain
veya hybrid
haritalarında desteklenmeyecek. İç mekanın desteklenmediği durumlarda bile isIndoorEnabled()
, şimdi olduğu gibi setIndoorEnabled()
aracılığıyla ayarlanan değeri döndürmeye devam eder. setIndoorEnabled
varsayılan olarak true
şeklindedir. Sürüm notları, bu harita türlerinde iç mekan desteğinin kullanılamadığını size bildirir.

Aşağıda, API'daki iç mekan haritaları işlevinin bir özeti verilmiştir:
GoogleMap.setIndoorEnabled(false)
numaralı telefonu arayarak iç mekan haritalarını devre dışı bırakabilirsiniz. İç mekan haritaları varsayılan olarak etkindir. İç mekan haritaları bir kerede bir harita üzerinde görüntülenir. Bu, uygulamanıza varsayılan olarak eklenen ilk haritadır. İç mekan haritalarını farklı bir haritada görüntülemek için ilk haritada devre dışı bırakın, ardından ikinci haritadasetIndoorEnabled(true)
numarasını arayın.- Varsayılan seviye seçiciyi (kat seçici) devre dışı bırakmak için
GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(false)
numaralı telefonu arayın. Daha ayrıntılı bilgi için Haritayla etkileşimde bulunma konusuna bakın. OnIndoorStateChangeListener
: Binaya odaklanıldığını veya bir binanın hangi seviyede etkinleştirildiğini algılayan dinleyicileri tanımlar. Ayrıntılar için Haritayla etkileşimde bulunma konusuna bakın.getFocusedBuilding
: Odaklanılmış binayı alır. ArdındanIndoorBuilding.getActiveLevelIndex()
numaralı telefonu arayarak etkin düzeyi bulabilirsiniz.- Temel haritanın stilini belirlemek, iç mekan haritalarını etkilemez.
Harita dolgusu ayarlama
Bu videoda harita dolgusu örneği gösterilmektedir.
Google haritası, kapsayıcı öğesi tarafından tanımlanan tüm bölgeyi (genellikle MapView
veya SupportMapFragment
) doldurmak için tasarlanmıştır. Haritanın görünümü ve davranışıyla ilgili çeşitli unsurlar, kapsayıcısının boyutlarına göre tanımlanır:
- Kameranın hedefi, dolgulu bölgenin merkezini yansıtır.
- Harita kontrolleri, haritanın kenarlarına göre konumlandırılır.
- Telif hakkı beyanları veya Google logosu gibi yasal bilgiler, haritanın alt kenarında görünür.
GoogleMap
kullanarak haritanın kenarlarına dolgu ekleyebilirsiniz.setPadding()
yöntemini kullanın. Harita, tüm kapsayıcıyı doldurmaya devam eder. Ancak metin ve kontrol konumlandırması, harita hareketleri ve kamera hareketleri daha küçük bir alana yerleştirilmiş gibi davranır. Bu durum aşağıdaki değişikliklere neden olur:
- API çağrıları veya düğme basışları (ör. pusula, konumum, yakınlaştırma düğmeleri) kullanılarak yapılan kamera hareketleri, dolgulu bölgeye göre yapılır.
getCameraPosition
yöntemi, dolgulu bölgenin merkezini döndürür.Projection
vegetVisibleRegion
yöntemleri, dolgulu bölgeyi döndürür.- Kullanıcı arayüzü kontrolleri, belirtilen piksel sayısına göre container'ın kenarından uzak tutulur.
Dolgu, haritanın bir kısmıyla çakışan kullanıcı arayüzleri tasarlarken yararlı olabilir. Aşağıdaki resimde, harita üst ve sağ kenarlarında bulunmaktadır. Görünür harita kontrolleri ve yasal metin, dolgulu bölgenin kenarları boyunca yeşil renkle gösterilir. Harita ise maviyle gösterilen tüm kapsayıcıyı doldurmaya devam eder. Bu örnekte, harita denetimlerini gizlemeden bir menünün sağ tarafını havalandırabilirsiniz.