Benutzerdefinierte Eigenschaft zu Markierung hinzufügen (Google Map Android API V2)
Bei der Verwendung von Google Map API V3 kann ich hinzufügen benutzerdefinierte Eigenschaft in der folgenden Weise:
var marker = new google.maps.Marker({
position: userLocation,
map: myGoogleMap,
animation: google.maps.Animation.DROP,
icon: avatar,
title: userName,
customProperty1: bla,
customProperty2: bla,
customProperty3: bla,
...
});
Frage ich mich, ob ich das gleiche tun für die API V2 für Android, der Grund, warum ich dies tun wollen, ist, dass jedes info-Fenster der einzelnen marker müssen wissen, einige Informationen von diesem marker. Und ich versuche, dieses Ziel zu erreichen render
Funktion unten:
private void render(Marker marker, View view) {
int badge = R.drawable.android_face;
if (marker.customProperty)
//here I need to know this property to decide which image to use
badge = R.drawable.bla;
((ImageView) view.findViewById(R.id.badge))
.setImageResource(badge);
}
InformationsquelleAutor der Frage Arch1tect | 2013-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht direkt verlängern
Marker
denn es ist eine Finale Klasse, aber haben Sie einige Optionen:0) Wie der Google Maps Android API v2 version 9.4.0, die Sie verwenden können
Marker::getTag
undMarker::setTag
. Dies ist wahrscheinlich die bevorzugte option.1) Erstellen einer map zu speichern, zusätzliche Informationen:
Beim erstellen eines marker, fügen Sie diese Karte mit Ihren Daten:
Später in Ihrem
render
Funktion:2) ein Anderer Weg wäre, die Nutzung
Marker.snippet
zu speichern, die info alsString
und später analysiert werden, aber das ist irgendwie hässlich und wartbaren Lösung.3) Schalter vom schlichten, Google Maps Android API v2 zu Android-Maps-Erweiterungen.
Dies ist sehr ähnlich wie Punkt 1, aber man kann direkt speichern
MyData
in marker, mitund später:
InformationsquelleAutor der Antwort MaciejGórski