Новое средство отрисовки карт

Обновленное средство отрисовки карт доступно в Maps SDK для Android версии 18.2.0. В нем реализовано множество новых возможностей, включая поддержку облачных стилей карт.

Вот какие преимущества обеспечивает новое средство отрисовки:

  • Поддержка функций облачных стилей карт.
  • Дополнительные возможности настройки ломаных линий.
  • Снижение нагрузки на сеть, а также потребления вычислительных ресурсов и памяти.
  • Улучшенная поддержка жестов и анимаций, более плавные панорамирование и масштабирование.
  • Более плавные переходы и четкое расположение пометок на карте.
  • Более стабильный и удобный пользовательский интерфейс.

График выпуска

В октябре 2021 г. компания Google впервые предложила обновленное средство отрисовки карт, и вы могли согласиться на его использование в вашем приложении.

После выхода версии 18.2.0 Maps SDK для Android мы стали использовать обновленное средство отрисовки по умолчанию вместо прежнего. Оно применяется при создании новых приложений и усовершенствовании старых.

Что произойдет в случае смены средства отрисовки по умолчанию?

Обновленное средство отрисовки стало использоваться по умолчанию после выхода версии 18.2.0 Maps SDK для Android. Чтобы воспользоваться им, создайте новое приложение или усовершенствуйте существующее, задействовав эту версию SDK.

Вы можете отказаться от перехода на обновленное средство отрисовки карт и использовать прежнее. О том, что для этого нужно сделать, рассказывается в разделе Как отказаться от использования обновленного средства отрисовки.

Поддерживаемые устройства

Обновленное средство отрисовки поддерживается на устройствах, соответствующих следующим критериям:

  • Android версии 5.0 (уровень API 21) или более поздней;
  • объем хранилища данных не менее 2 ГБ;
  • сервисы Google Play версии 21.39.14 или более поздней.

Если на устройстве установлена ОС Android 4.4W (уровень API 20) и более ранней версии, объем хранилища данных составляет менее 2 ГБ или работают сервисы Google Play версии 21.39.13 и ниже, то на нем будет использоваться прежнее средство отрисовки даже после перехода на использование обновленного средства по умолчанию.

Как отказаться от использования обновленного средства отрисовки

По умолчанию в приложениях, созданных на основе версии 18.2.0 Maps SDK для Android, используется обновленное средство отрисовки. Вы можете отказаться от этого средства и использовать в приложении прежнее.

Вот как это сделать:

  • В коде приложения задайте команды для импорта MapsInitializer и MapsInitializer.Renderer.

  • Добавьте в код приложения вызов метода MapsInitializer.initialize(), в котором передается объект Renderer.LEGACY, чтобы использовать прежнюю версию средства отрисовки.

  • С помощью метода OnMapsSdkInitializedCallback определите, какая версия средства отрисовки была возвращена.

Метод MapsInitializer.initialize() нужно вызвать до создания каких-либо объектов MapView, MapFragment или SupportMapFragment. Рекомендуем поместить его в метод onCreate класса Application или Activity (до настройки представления контента).

В приведенном ниже примере показано, как вызвать метод MapsInitializer.initialize(), чтобы отказаться от обновленного средства отрисовки.

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