如何在谷歌地图可组合标记上显示标题和片段,而不点击它?

Pie*_*ira 3 android google-maps kotlin android-jetpack-compose

我正在使用新的谷歌地图集成与 jetpack compose,但是我想修改我的标记的行为:当地图初始化时,我想显示我的标记的信息,而不必单击它。目前地图是这样开始的:

当我单击突出显示的标记时,它看起来像这样:

我期望的结果是该书签与此信息一起出现,而我不必单击它。

我用来渲染带有标记的地图的代码是这样的:

GoogleMap(
    modifier = Modifier
        .fillMaxHeight(0.9f)
        .fillMaxWidth(),
    cameraPositionState = cameraPositionState
) {
    coordinates.forEach { (hotelName, coordinate) ->
        var alpha = 0.5f
        if (highlightedMarkerPosition == LatLng(coordinate[0], coordinate[1]))
            alpha = 1f

        Marker(
            position = LatLng(coordinate[0], coordinate[1]),
            title = hotelName,
            snippet = uiState.bestHotelAndValue?.second.toString(),
            alpha = alpha
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

los*_*bit 6

将其保存MarkerState到变量中,然后调用showInfoWindow

像这样

GoogleMap(
    modifier = Modifier
        .fillMaxHeight(0.9f)
        .fillMaxWidth(),
    cameraPositionState = cameraPositionState
) {
    coordinates.forEach { (hotelName, coordinate) ->
        var alpha = 0.5f
        if (highlightedMarkerPosition == LatLng(coordinate[0], coordinate[1]))
            alpha = 1f
        
        HotelMarker(
            LatLng(coordinate[0], coordinate[1]),
            hotelName,
            uiState.bestHotelAndValue?.second.toString(),
            alpha
        )
    }
}

@Composable
fun HotelMarker(position: LatLng, title: String, snippet: String?, alpha: Float){
    val markerState = rememberMarkerState(null, position)
    Marker(
        state = markerState,
        title = title,
        snippet = snippet,
        alpha = alpha
    )
    markerState.showInfoWindow()
}
Run Code Online (Sandbox Code Playgroud)