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

Обновленное средство отрисовки карт доступно в Maps SDK для Android версии 18.0.0. Оно обеспечивает множество улучшений, в том числе поддержку облачных стилей карт. Вы можете включить его и испытать в работе до того, как оно станет используемым по умолчанию для устройств Android (этот переход будет проходить постепенно и начнется не раньше марта 2022 г).

Новое средство отрисовки обеспечивает следующие преимущества:

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

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

Чтобы использовать новое средство отрисовки, устройства должны соответствовать следующим критериям:

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

Прежнее средство отрисовки будет использоваться, если на устройстве установлена ОС Android версии 21 и ниже, объем хранилища данных составляет менее 2 ГБ или используются сервисы Google Play версии 21.39.13 и ниже.

Как испытать новое средство отрисовки

Выполните следующие действия:

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

В следующем примере демонстрируется вызов MapsInitializer.initialize(), запрашивающий версию средства отрисовки.

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.LATEST, 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;
    }
  }
}

      

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