Использование 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(). По умолчанию каждый элемент массива задает цвет соответствующего сегмента линии. В следующем примере показано, как создать ломаную линию с красными и зелеными сегментами:

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))
)

      

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

      

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

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

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()
            )
        )
)

      

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())));

      

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

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

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)
)

      

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

      

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

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

  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 (бета).