在Android应用程序中使用infowindow的折线

时间:2016-11-03 06:02:59

标签: android google-maps infowindow polyline

在android地图应用程序中,它显示多个路径的工具提示窗口,同样的方式谷歌地图也显示该窗口。我想知道这是一个自定义标记还是多边形的infoWindow。

有没有人知道如何使用android map-v2集成来实现这个目标?

下面的图片展示了我在android中实现的期望。

Snapshot from google map

3 个答案:

答案 0 :(得分:2)

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)

enter image description here

答案 1 :(得分:1)

Google Maps Android API中它说:

  

信息窗口在地图上方的弹出窗口中显示文本或图像。 信息窗口始终固定在标记上。他们的默认行为是在点按标记时显示。

因此,除了将信息窗口附加到折线之外,您还必须使用其他解决方案。也许您可以在该位置创建一个不可见标记,点击折线,即时打开信息窗口。

答案 2 :(得分:0)

如果有人仍在寻找答案,您可以使用maps-utils library中的气泡图标。它允许您创建自定义标记,看起来就像信息窗口。您可以从here运行演示,但请确保在运行时将其导入为项目:File-> New-> Import Project ...