Yeni Harita Oluşturucu

Android için Haritalar SDK'sının 18.2.0 sürümü itibarıyla yeni sürüme geçirilmiş bir harita oluşturma aracı kullanıma sunulmuştur. Bu oluşturma aracı, bulut tabanlı harita stili desteği de dahil olmak üzere birçok iyileştirme sunar.

Yeni oluşturma aracı aşağıdaki avantajları sağlar:

  • Bulut tabanlı harita stili özellikleri yeni oluşturma aracında kullanılabilir.
  • Gelişmiş Poli Çizgi Özelleştirmeleri, yeni oluşturma aracıyla kullanılabilir.
  • Ağ yükü, işleme talebi ve bellek tüketimi azaltılır.
  • Daha iyi animasyonlar ve daha yumuşak kaydırma ve yakınlaştırma için hareketlerin işlenmesi iyileştirildi.
  • Daha akıcı geçişler ve net bir şekilde yerleştirilmiş 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şturma aracını kullanacak şekilde otomatik olarak güncellemeye başladı. Otomatik güncellemeler, uygulamanın kullandığı Android için Haritalar SDK'sının sürümünden bağımsız olarak minimum cihaz koşullarını karşılayan cihazlarda çalışan tüm uygulamalara uygulandı. Bu kullanıma sunma işlemi tamamlandı.

Otomatik güncellemeler aşağıdakiler için geçerli değildi:

Desteklenen cihazlar

Yükseltilmiş harita oluşturma aracını kullanmak için cihazların şu ölçütleri karşılaması gerekir:

  • Android 5.0 (API düzeyi 21) veya sonraki sürümler
  • Google Play Hizmetleri 21.39.14 veya sonraki bir sürümü kullanıyor olmalıdır.

Android 4.4W (API düzeyi 20) ve önceki sürümleri ya da Google Play Hizmetleri 21.39.13 ve önceki sürümlerini kullanan cihazlar eski oluşturma aracını kullanmaya devam eder.

Yükseltilmiş oluşturma aracını kullanmayı devre dışı bırakma

Gerekirse uygulamanızda eski oluşturma aracını kullanmak için yükseltilmiş oluşturma aracının kullanımını açıkça devre dışı bırakabilirsiniz.

Devre dışı bırakmak için:

  • Android için Haritalar SDK'sını 18.0 veya sonraki bir sürüme yükseltin.

  • MapsInitializer ve MapsInitializer.Renderer öğelerini açıkça içe aktaracak şekilde kodunuzu güncelleyin.

  • Kodunuzu, Renderer.LEGACY parametresini iliştirerek MapsInitializer.initialize() işlevini çağıracak şekilde güncelleyin. Bu sayede, kapsam dışında kalmayı seçebilir ve eski oluşturma aracını kullanabilirsiniz.

  • Oluşturucunun hangi sürümünün döndürüldüğünü belirlemek için OnMapsSdkInitializedCallback işlevini kullanın.

Kodunuz, herhangi bir MapView, MapFragment veya SupportMapFragment oluşturulmadan önce MapsInitializer.initialize() çağrısı yapmalıdır. Bu işlevi, uygulamanızın Uygulama veya Etkinlik için onCreate içinde, içerik görünümü ayarlanmadan önce çağırmanızı öneririz.

Aşağıdaki örnekte, eski harita oluşturma aracını kullanmak için devre dışı bırakmak üzere 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;
    }
  }
}