Использование Maps SDK для Android версии 3.1.0 (бета)

Версия 3.1.0 (бета) Maps SDK для Android – это новая реализация API с теми же классами и методами, что и в прежней версии. В нее добавлены некоторые новые функции:

  • настройка карт;
  • управление наложением маркеров;
  • настройка ломаных линий.

В этом руководстве рассказывается, как пользоваться новыми функциями.

Настройка карт (бета)

Облачные стили карт – это набор простых и удобных функций и инструментов, позволяющих изменять стиль и отрисовку карт. Вместо того чтобы редактировать код решения на базе Maps API и SDK, вы можете управлять стилями карт в интерфейсе Google Cloud Console. Более подробная информация приведена в статье о настройке карт для Android.

Управление наложением маркеров (бета)

Вы можете указать, должны ли собственные маркеры использоваться вместо ярлыков базовой карты по умолчанию, когда возникает наложение. Для собственных маркеров также можно задать относительный приоритет. Более подробная информация приведена в статье об управлении наложением маркеров (Android).

Настройка ломаных линий (бета)

Добавлено несколько настроек отображения ломаных линий:

  • Многоцветные ломаные линии. Сегменты ломаных линий отрисовываются разными цветами.
  • Ломаные линии с плавным переходом цвета. Цвет ломаных линий плавно переходит из одного в другой.
  • Текстурированные ломаные линии. Ломаные линии отрисовываются с помощью повторяющейся растровой текстуры.

Как создать многоцветную ломаную линию

Можно задать цвета отдельных сегментов, настроив интервалы. Для этого создайте объекты StyleSpan и добавьте их в объект PolylineOptions с помощью метода addSpan() или addSpans(). По умолчанию каждый элемент массива задает цвет соответствующего сегмента линии. В следующем примере показано, как настроить цвета, чтобы создать ломаную линию с красными и зелеными сегментами:

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(Color.RED))
        .addSpan(new StyleSpan(Color.GREEN)));

      

Kotlin


val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(StyleSpan(Color.RED))
        .addSpan(StyleSpan(Color.GREEN))
)

      

Как создать ломаную линию с плавным переходом цвета

Вы можете указать цвета начала и конца контура в виде двух 32-битных целых чисел, обозначающих цвета в формате ARGB (альфа-канал, красный, зеленый, синий). Задайте это свойство объекта фигуры с помощью метода PolylineOptions.addSpan(). В следующем примере показано, как создать ломаную линию от вудлендского зоопарка до Киркленда (Вашингтон, США) с плавным переходом цветов от красного к желтому.

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.RED, Color.YELLOW).build())));

      

Kotlin


val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(
            StyleSpan(
                StrokeStyle.gradientBuilder(
                    Color.RED,
                    Color.YELLOW
                ).build()
            )
        )
)

      

Как создать текстурированную ломаную линию

Для отрисовки ломаной линии можно использовать повторяющуюся растровую текстуру. Для этого создайте StampStyle на основе TextureStyle и задайте это свойство объекту параметров фигуры с помощью метода PolylineOptions.addSpan(), как показано в следующем примере:

Java


StampStyle stampStyle =
        TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build();
StyleSpan span = new StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build());
map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(span));

      

Kotlin


val stampStyle =
    TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build()
val span = StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build())
map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(span)
)

      

Как импортировать библиотеку утилит, совместимую с бета-версией

Если вы используете библиотеку утилит Google Maps для Android, необходимо обновить зависимости вашего проекта, заменив существующую версию библиотеки на бета-совместимую. Для этого выполните следующие действия:

  1. Импортируйте бета-совместимую библиотеку утилит в файле build.gradle:
    implementation 'com.google.maps.android:android-maps-utils-v3:1.3.1'
    
  2. Удалите следующую строку из файла build.gradle, чтобы удалить несовместимую библиотеку утилит:
    implementation 'com.google.maps.android:android-maps-utils:1.3.1'
    

Как запустить приложения-примеры

В репозитории Google Samples на сайте GitHub доступны примеры приложений, где демонстрируется использование Maps SDK для Android версии 3.1.0 (бета).