Полилиния с информационным окном в приложении для Android

В приложении карты Android отображается окно всплывающей подсказки для нескольких маршрутов, точно так же, как карта Google также показывает это окно. Мне было интересно, является ли это пользовательским маркером или информационным окном поверх полилинии.

Кто-нибудь знает, как добиться этого с помощью интеграции android map-v2?

Следующее изображение показывает мои ожидания для реализации в Android.

Снимок с карты Google


person NetDemo    schedule 03.11.2016    source источник


Ответы (3)


2020 Решение (Котлин)

Я написал эту небольшую функцию расширения Kotlin (просто добавьте к вашим функциям расширения или где-нибудь в вашем коде), чтобы сделать именно то, что нужно: она добавляет информационное окно на полпути к полилинии.

fun Polyline.addInfoWindow(map: GoogleMap, title: String, message: String) {
    val pointsOnLine = this.points.size
    val infoLatLng = this.points[(pointsOnLine / 2)]
    val invisibleMarker =
        BitmapDescriptorFactory.fromBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888))
    val marker = map.addMarker(
        MarkerOptions()
            .position(infoLatLng)
            .title(title)
            .snippet(message)
            .alpha(0f)
            .icon(invisibleMarker)
            .anchor(0f, 0f)
    )
    marker.showInfoWindow()
}

Используйте следующим образом:

polyline.addInfoWindow(map, "Title", "Message")

Пример использования:

polyline.addInfoWindow(map, route.distanceText, route.durationText)

введите здесь описание изображения

person Simon Mayrshofer    schedule 12.06.2020

В API Карт Google для Android говорится, что:

Информационное окно отображает текст или изображения во всплывающем окне над картой. Информационные окна всегда привязаны к маркеру. По умолчанию они отображаются при касании маркера.

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

person mrunde    schedule 03.11.2016
comment
Есть проблемы с этим решением: 1. Вы не можете создать несколько информационных окон одновременно. 2. Вы не умеете размещать всплывающие подсказки, чтобы они выкладывались отдельно. - person SafaOrhan; 28.07.2017

Если кто-то все еще ищет ответ, вы можете использовать всплывающие значки из библиотека maps-utils. Он позволяет создавать настраиваемые маркеры, которые выглядят так же, как информационные окна. Вы можете запустить демонстрацию из здесь, но обязательно импортируйте является проектом, когда вы его запускаете: File->New->Import Project...

person Mantoska    schedule 13.09.2017