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

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

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

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

برنامه عرضه

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

به‌روزرسانی‌های خودکار برای همه برنامه‌های در حال اجرا در دستگاه‌هایی اعمال می‌شود که حداقل مورد نیاز دستگاه را برآورده می‌کنند، صرف‌نظر از نسخه Maps SDK برای Android که توسط برنامه استفاده می‌شود.

به‌روزرسانی‌های خودکار برای موارد زیر اعمال نمی‌شود:

  • برنامه‌هایی که قبلاً برای استفاده از رندر ارتقا یافته به‌روزرسانی شده‌اند.

  • برنامه‌هایی که به صراحت از این ارتقا انصراف داده‌اند .

  • برنامه‌هایی که روی دستگاه‌هایی اجرا می‌شوند که حداقل الزامات دستگاه را برآورده نمی‌کنند.

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

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

پس از به‌روزرسانی، برنامه شما می‌تواند از همه ویژگی‌ها و مزایای جدید موجود در رندر ارتقا یافته استفاده کند.

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

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

به‌روزرسانی خودکار برای همه دستگاه‌هایی اعمال می‌شود که این معیارها را دارند، صرف‌نظر از نسخه Maps SDK برای Android که توسط برنامه استفاده می‌شود:

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

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

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

در صورت لزوم، می‌توانید صراحتاً از استفاده از رندر ارتقا یافته برای استفاده از رندر قدیمی در برنامه خود انصراف دهید.

برای انصراف:

  • Maps SDK برای Android را به نسخه 18.0 یا بالاتر ارتقا دهید .

  • کد خود را برای وارد کردن صریح 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;
    }
  }
}