-1

我正在使用此代码在谷歌地图上绘制标记(隐藏在屏幕上不可见的标记)

for (MyMapPointModel item : items) {
            // If the item is within the the bounds of the screen
            if (bounds.contains(item.getLatLng())) {
                // If the item isn't already being displayed
                if (!visibleMarkers.containsKey(item.getId())) {
                    // Add the Marker to the Map and keep track of it with
                    // the HashMap
                    // getMarkerForItem just returns a MarkerOptions object
                    customMarker = getMap().addMarker(getMarkerForItem(item));
                    visibleMarkers.put(item.getId(), customMarker);
                    drawMarker(item.getLatLng(), item.getThumbUri(), item.getId());
                }
            } else { // If the marker is off screen
                // If the course was previously on screen
                if (visibleMarkers.containsKey(item.getId())) {
                    // 1. Remove the Marker from the GoogleMap
                    visibleMarkers.get(item.getId()).remove();
                    // 2. Remove the reference to the Marker from the
                    // HashMap
                    visibleMarkers.remove(item.getId());

                }
            }
        }

我在哈希图中存储带有项目 id 的标记我想调用一个带有录音标记详细信息的活动,我无法从 onMarkerClick 侦听器获取项目 id(他只提供标记对象)。我错过了什么,如果我是什么?有没有人有更好的主意?

4

3 回答 3

1

我在hashmap中存储带有项目id的标记我正在使用hashmap

我假设您在其他地方成功地使用了该特定数据结构,因此它很有用。

但是,对于您的问题,听起来您需要HashMap<String, Integer>使用getId()onMarker作为键。这将允许您查找您Integer给定的Marker.

或者,如果您正在创建自己的信息窗口,请使用 a 中的标题或片段字段Marker来保存整数的字符串表示形式,以便您可以使用getTitle()getSnippet()直接检索该值。

于 2013-09-25T16:25:43.890 回答
0

试试下面

 mMap.setOnMarkerClickListener(new OnMarkerClickListener()
                {

                    @Override
                    public boolean onMarkerClick(Marker arg0) {
                        arg0.getId() //get id
                        //use switch case
                        // or use title
                        if(arg0.getTitle().equals("title"))   
                        // do something
                        return true;
                    }

                });
于 2013-09-25T16:08:18.007 回答
0

使用此代码

 mMap.setOnMarkerClickListener(new OnMarkerClickListener()
            {

                @Override
                public boolean onMarkerClick(Marker arg0) {
                    if(arg0.getTitle().equals("MyHome")) // if marker source is clicked

                    return true;
                }

            });       
于 2013-09-25T16:17:11.250 回答