Android için Haritalar SDK'sının 18.2.0 sürümünden itibaren yükseltilmiş bir harita oluşturucu kullanılabilir. Bu oluşturucu, bulut tabanlı harita stili desteği gibi birçok iyileştirme sunar.
Yeni oluşturucu aşağıdaki avantajları sunar:
- Yeni oluşturucuyla bulut tabanlı harita stilleri özelliklerini kullanabilirsiniz.
- Gelişmiş çoklu çizgi özelleştirmeleri yeni oluşturucuyla kullanılabilir.
- Ağ yükü, işleme talebi ve bellek tüketimi azalır.
- Daha iyi animasyonlar için geliştirilmiş hareket işleme, daha akıcı kaydırma ve yakınlaştırma.
- Daha akıcı geçişler ve net bir şekilde konumlandırılmış harita etiketleri.
- Daha kararlı ve iyileştirilmiş bir kullanıcı deneyimi.
Otomatik güncelleme durumu
Google, Mart 2024'te dağıtılan tüm uygulamaları yükseltilmiş oluşturucuyu kullanacak şekilde otomatik olarak güncellemeye başladı. Uygulama tarafından kullanılan Android için Haritalar SDK'sının sürümünden bağımsız olarak, minimum cihaz gereksinimlerini karşılayan cihazlarda çalışan tüm uygulamalara otomatik güncellemeler uygulandı. Bu dağıtım artık tamamlandı.
Otomatik güncellemeler şu durumlarda geçerli değildir:
Yükseltilmiş oluşturucuyu kullanmak için güncellenmiş uygulamalar.
Yükseltmeyi açıkça devre dışı bırakan uygulamalar.
Minimum cihaz gereksinimlerini karşılamayan cihazlarda çalışan uygulamalar
Desteklenen cihazlar
Yükseltilmiş harita oluşturucuyu kullanmak için cihazların aşağıdaki ölçütleri karşılaması gerekir:
- Android 5.0 (API düzeyi 21) veya sonraki sürümler
- Google Play Hizmetleri'nin 21.39.14 veya sonraki bir sürümünü kullanma
Android 4.4W (API düzeyi 20) ve önceki sürümleri veya Google Play Hizmetleri'nin 21.39.13 ya da önceki sürümlerini kullanan cihazlar eski oluşturucuyu kullanmaya devam eder.
Yükseltilmiş oluşturucuyu kullanmayı devre dışı bırakma
Gerekirse uygulamanızda eski oluşturucuyu kullanmak için yükseltilmiş oluşturucuyu kullanmayı açıkça devre dışı bırakabilirsiniz.
Devre dışı bırakmak için:
Android için Haritalar SDK'sını yükseltin. Sürüm 18.0 veya daha yeni olmalıdır.
MapsInitializer ve MapsInitializer.Renderer'ı açıkça içe aktarmak için kodunuzu güncelleyin.
MapsInitializer.initialize()
işlevini çağırmak için kodunuzu güncelleyin. Eski oluşturucuyu kullanmak ve kapsam dışında kalmak içinRenderer.LEGACY
değerini iletin.Hangi oluşturucu sürümünün döndürüldüğünü belirlemek için OnMapsSdkInitializedCallback'i kullanın.
Kodunuz, herhangi bir
MapsInitializer.initialize()
MapView,
MapFragment,
veya
SupportMapFragment
oluşturulmadan önce çağrılmalıdır. Uygulamanızın onCreate
için bu işlevi, içerik görünümü ayarlanmadan önce Application veya Activity'de çağırmanız önerilir.
Aşağıdaki örnekte, eski harita oluşturucuyu kullanmayı devre dışı bırakmak için MapsInitializer.initialize()
işlevinin nasıl çağrılacağı gösterilmektedir.
Kotlin
import com.google.android.gms.maps.MapsInitializer import com.google.android.gms.maps.MapsInitializer.Renderer import com.google.android.gms.maps.OnMapsSdkInitializedCallback internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback { override fun onCreate() { super.onCreate() MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this) } override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) { when (renderer) { Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.") Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.") } } }
Java
import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.MapsInitializer.Renderer; import com.google.android.gms.maps.OnMapsSdkInitializedCallback; class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback { @Override public void onCreate() { super.onCreate(); MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this); } @Override public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) { switch (renderer) { case LATEST: Log.d("MapsDemo", "The latest version of the renderer is used."); break; case LEGACY: Log.d("MapsDemo", "The legacy version of the renderer is used."); break; } } }