InfoWindow中的Android Google地图摘要自动更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InfoWindow中的Android Google地图摘要自动更新相关的知识,希望对你有一定的参考价值。

我在我的应用中使用谷歌地图只有很少的标记。每隔几秒钟我就会从API标记位置加载。每个标记都设置了标题和摘要。在片段中,我想显示加载数据的时间。

问题是,当用户点击其中一个标记并且标题和片段的InfoWindow可见时,之后我更改了片段和内容但是可见InfoWindow上的内容未更改 - 用户必须单击地图以隐藏InfoWindow和再次单击标记 - 然后内容是正确的。

在标题或代码段发生变化后,是否可以刷新InfoWindow内容?

答案

我使用android Maps Extensions https://github.com/mg6maciej/android-maps-extensions找到了解决方案。

更新标记数据后调用此方法:

    Marker m = map.getMarkerShowingInfoWindow();
    if (m != null && !m.isCluster()) {
        m.showInfoWindow();
    }
另一答案

请注意,在Google Maps Android API的文档中:

绘制的info window不是实时视图。视图在返回时呈现为图像(使用View.draw(Canvas))。这意味着对视图的任何后续更改都不会被地图上的信息窗口反映出来。要稍后更新信息窗口(例如,在加载图像后),请调用showInfoWindow()。此外,信息窗口将不会考虑正常视图(例如触摸或手势事件)的任何典型交互。但是,您可以在整个信息窗口中收听通用点击事件,如下节所述。

然后,如果你想做实时功能。我建议学习如何使用Firebase with Google maps

什么是Firebase

Firebase是一个具有许多功能的应用程序平台。本教程使用其实时数据库。数据存储为JSON,实时同步到所有连接的客户端,即使您的应用程序脱机也可用。

另一答案

在使用onDataChange引入firebase数据后,我更新了Marker。

if (marker != null && marker.isInfoWindowShown() ) {
   marker.showInfoWindow();
}

以上是关于InfoWindow中的Android Google地图摘要自动更新的主要内容,如果未能解决你的问题,请参考以下文章

Android Google Maps V2 Cluster 隐藏 infoWindow

更改或完全删除 Android 上 Google Maps v2 的 InfoWindow 的突出显示颜色

如何通过滑行在 Google 地图上的 infoWindow 中获取图像 - Android

Android谷歌地图,如何让每个Marker InfoWindow打开不同的Activity?

将 infoWindow 包含到 gmaps markerclusterer 中的问题

触摸 infoWindow 适配器时删除突出显示