android - 如何将 Google Maps Android API v2 标记链接到对象

标签 android google-maps-android-api-2

我正在 map 中动态添加非固定数量的标记,其中每个标记都与我的 POCO 类的一个实例相关。

我需要链接它们,以便当用户点击其中一个标记时,我会在自定义信息窗口中显示其余数据。

你有什么建议?

PS:每次用户平移或缩放 map 时,我都会添加新标记,我担心应用程序过载。不可见的标记是否已处理?

最佳答案

我建议使用 HashMap 或类似的东西。当您遍历对象列表并为它们创建标记时,还将标记添加到列表中,使用对象的 ID 作为键,使用标记作为值:

private HashMap<Integer, Marker> markerMap = new HashMap<Integer, Marker>();

...

for(MarkerObject obj : this.markerObjects)
{
     //If the marker isn't already being displayed
     if(!markerMap.containsKey(obj.getId()))
     {
         //Add the Marker to the Map and keep track of it 
         this.markerMap.put(obj.getId(), this.mMap.addMarker(getMarkerForObject(obj)));
     }
}

然后您可以使用 OnInfoWindowClickListener 在您的 map 中查找点击标记的对象 ID 并使用相应的数据执行某些操作,例如打开一个包含详细信息的新 Activity 。

关于android - 如何将 Google Maps Android API v2 标记链接到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14310280/

相关文章:

android - 从设置中清除应用程序缓存后如何保留共享首选项数据

Android SupportMapFragment.getMap() 返回 null

android - 我可以在 osmdroid 中使用 Google map 图 block 吗?

android - 棘手的 Android 谷歌地图缩放,同时保持中心点

android - 给我看 android :src error

android - 生成设备特定的序列号

java - 如何在警报对话框android java中获取默认选中复选框的值

android - 如何更改qt android应用程序的默认应用程序图像

android - Google Maps Api v2 - 具有自己的信息窗口的多个标记

android - 我如何解决在 android fragment 中集成谷歌地图