我有一张带有标记的Google地图。在创建时,标记的ID被放入哈希映射中。我希望地图打开并自动显示窗口,但如何使用哈希映射获取对标记的引用?
Iterator it = markerMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
if (String.valueOf(pairs.getValue()).equals(strID)) { //when these match
//need to showInfowindow here??? But how?
break; //exit as match found
}
}
编辑:pairs.getValue是一个标记,strID是底层SQLite数据库的_id。当我尝试在Hashmap中获得对标记的引用时,我得到一个'required:Marker found:Object'不兼容错误。设置Hashmap的代码是:
private HashMap<Marker, Integer> markerMap = new HashMap<Marker, Integer>();
设置标记并将其放入Hashmap的代码是:
m = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title(c.getString(3))
.snippet(strIcon.toUpperCase())
.icon(BitmapDescriptorFactory.fromAsset(strIcon + ".png")));
markerMap.put(m, Integer.parseInt(c.getString(0)));
我知道代码有点笨拙并且需要整理 - 但是一旦pair.getValue()和strID匹配,那么已经识别出正确的标记,但是如何获得对标记的引用以调用showInfowindow?
提前致谢。