Android Google Maps唯一标识onInfoWindowClick标记

Gar*_*bit 2 android google-maps-markers android-maps google-maps-android-api-2

嗨我正在使用谷歌android map v2并添加一堆标记到地图但是我需要将其他数据添加到标记对象以便稍后在onInfoWindowClick函数中调用.

我目前有一个MarkerManager单例类,它维护一个并发的场所列表,但是在onInfoWindowClick函数中我需要通过MarkerManager的某种形式的键来回忆这个.

看起来标记是静态最终的,不能扩展,所以我有点坚持如何做到这一点.

谢谢,

安迪

She*_*tib 15

您可以创建一个HashMap:

 Map<Marker, YourCustomObject> theMap;
Run Code Online (Sandbox Code Playgroud)

然后将标记添加为键:

Marker m = mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.whatever)).position(new LatLng(mLat, mLong)));
theMap.put(m, yourCustomObjectInstance);
Run Code Online (Sandbox Code Playgroud)

最后在Info Window提供程序中,您可以通过提供给getInfoWindow函数`的标记检索对象:

mMap.setInfoWindowAdapter(new InfoWindowAdapter() {
    @Override
    public View getInfoWindow(Marker marker) {
        YourCustomObject yourCustomObjectInstance = theMap.get(marker);
    }
Run Code Online (Sandbox Code Playgroud)