رندر نقشه جدید

یک رندر نقشه ارتقا یافته از نسخه 18.2.0 Maps SDK برای Android در دسترس است. این رندر پیشرفت‌های زیادی را به همراه دارد، از جمله پشتیبانی از طراحی نقشه‌های مبتنی بر ابر.

رندر جدید مزایای زیر را ارائه می دهد:

  • ویژگی‌های طراحی نقشه‌های مبتنی بر ابر با رندر جدید در دسترس هستند.
  • سفارشی سازی های پیشرفته Polyline با رندر جدید در دسترس هستند.
  • کاهش بار شبکه، تقاضای پردازش و مصرف حافظه.
  • کنترل ژست‌های حرکتی بهبود یافته برای انیمیشن‌های بهتر، به‌علاوه حرکت و زوم روان‌تر.
  • انتقال سیال بیشتر و برچسب‌های نقشه با موقعیت واضح.
  • تجربه کاربری پایدارتر و بهبودیافته.

برنامه عرضه

در اکتبر 2021، گوگل عرضه رندر نقشه ارتقا یافته را آغاز کرد. در آن زمان، می‌توانید تصمیم بگیرید که شروع به استفاده از رندر ارتقا یافته در برنامه خود کنید.

با انتشار نسخه 18.2.0 Maps SDK برای اندروید، گوگل رندر پیش فرض را از رندر قدیمی به رندر نقشه ارتقا یافته تغییر داد. در نسخه 18.2.0، رندر کننده نقشه که هنگام ساخت یک برنامه جدید یا بازسازی یک برنامه موجود استفاده می شود، به رندر نقشه ارتقا یافته تبدیل می شود.

وقتی رندر پیش فرض تغییر کند چه اتفاقی می افتد؟

با انتشار نسخه 18.2.0 Maps SDK برای اندروید، رندر پیش فرض به رندر ارتقا یافته تبدیل می شود. برای استفاده از رندر ارتقا یافته، باید با استفاده از نسخه جدید SDK، هر برنامه جدیدی بسازید، یا هر برنامه موجود را بازسازی کنید.

با این حال، می توانید تصمیم بگیرید که از این تغییر انصراف دهید. اگر انصراف دهید، برنامه شما همچنان از رندر قدیمی استفاده می‌کند. به عنوان مثال کد نحوه انصراف ، انصراف از استفاده از رندر ارتقا یافته را ببینید.

دستگاه های پشتیبانی شده

برای استفاده از ارائه‌دهنده نقشه ارتقا یافته، دستگاه‌ها باید این معیارها را داشته باشند:

  • Android 5.0 (سطح API 21) یا جدیدتر
  • با استفاده از خدمات Google Play نسخه 21.39.14 یا جدیدتر

دستگاه‌هایی که از Android 4.4W (سطح API 20) و قدیمی‌تر استفاده می‌کنند، یا از سرویس‌های Google Play نسخه‌های 21.39.13 یا قبل‌تر استفاده می‌کنند، حتی پس از تغییر رندر پیش‌فرض شما به رندر نقشه ارتقا یافته، همچنان از رندر قدیمی استفاده می‌کنند.

از استفاده از رندر ارتقا یافته انصراف دهید

به‌طور پیش‌فرض، برنامه‌هایی که با استفاده از نسخه 18.2.0 Maps SDK برای Android ساخته شده‌اند، از رندر ارتقا یافته استفاده می‌کنند. در صورت لزوم، می‌توانید صراحتاً از استفاده از رندر ارتقا یافته برای استفاده از رندر قدیمی در برنامه خود انصراف دهید.

برای انصراف:

  • کد خود را برای وارد کردن صریح MapsInitializer و MapsInitializer.Renderer به روز کنید.

  • کد خود را به‌روزرسانی کنید تا MapsInitializer.initialize() را فراخوانی کنید و از Renderer.LEGACY عبور دهید تا انصراف دهید و از رندر قدیمی استفاده کنید.

  • از OnMapsSdkInitializedCallback برای تعیین اینکه کدام نسخه از رندر برگردانده شده است استفاده کنید.

قبل از ایجاد MapView ، MapFragment یا SupportMapFragment ، کد شما باید MapsInitializer.initialize() را فراخوانی کند. توصیه می‌کنیم قبل از تنظیم نمای محتوای برنامه، آن را در onCreate برای Application یا Activity فراخوانی کنید.

مثال زیر نحوه فراخوانی MapsInitializer.initialize() برای انصراف از استفاده از رندر نقشه قدیمی نشان می دهد.

کاتلین

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.")
    }
  }
}

جاوا

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;
    }
  }
}