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

Обновленное средство отрисовки карт доступно в 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;
    }
  }
}