Nun, jeder Marker in meiner Anwendung wird einen Benutzer darstellen, also muss ich diesen Benutzer identifizieren, wenn ich auf das Infofenster klicke, um seine Daten aus dem Internet zu bekommen, und ich kann Machen Sie es aus offensichtlichen Gründen nicht namentlich. Ist es möglich, einem Markerobjekt ein zusätzliches Attribut hinzuzufügen? Vielen Dank!Identifikation zu Markierung auf Google Maps hinzufügen v2 api für Android
Antwort
könnten Sie eine HashMap<Marker, User>
Überprüfung dieses Tutorial machen: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html
Dies sollte die richtige Antwort markiert werden. Funktioniert perfekt. Einfaches Tutorial zu folgen. – KickingLettuce
Ist es möglich, einem Marker-Objekt ein zusätzliches Attribut hinzuzufügen?
Nr. Marker
ist final
. Außerdem verschwinden die Marker
Objekte, die Sie erstellen, schnell, da sie nur für einige IPCs in der Google Play Services App verwendet werden. Das Marker
Objekt, das Sie in Ihrer OnInfoWindowClickListener
erhalten, scheint eine wiederhergestellte Kopie zu sein.
Ich habe einen Untertitel im Snippet-Feld, so dass das keine Option ist.
Sicher ist es. Speichere den Untertitel an einer anderen Stelle und lege den Schlüssel deinem Benutzer im Untertitel. Wenn Sie die InfoWindow
von Ihrer InfoWindowAdapter
rendern, ziehen Sie den Untertitel.
Hier ist eine etwas einfachere Lösung, die ich umgesetzt haben. Alles, was Sie tun, ist einen InfoWindowAdapter zu erstellen, der etwas übernimmt, das Sie an das Fenster im Konstruktor übergeben möchten.
class CustomWindowAdapter implements InfoWindowAdapter{
LayoutInflater mInflater;
private HashMap<Marker, Double> mRatingHash;
public CustomWindowAdapter(LayoutInflater i, HashMap<Marker, Double> h){
mInflater = i;
mRatingHash = h;
}
@Override
public View getInfoContents(Marker marker) {
// Getting view from the layout file
View v = mInflater.inflate(R.layout.custom_info_window, null);
TextView title = (TextView) v.findViewById(R.id.tv_info_window_title);
title.setText(marker.getTitle());
TextView description = (TextView) v.findViewById(R.id.tv_info_window_description);
description.setText(marker.getSnippet());
RatingBar rating = (RatingBar) v.findViewById(R.id.rv_info_window);
Double ratingValue = mRatingHash.get(marker);
rating.setRating(ratingValue.floatValue());
return v;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
Sie sind verantwortlich für alle Daten, die Sie im Infofenster übergeben wollen, aber Sie können hier sehen, dass ich einen Hash der Bewertungen bin vorbei. Nur ein Prototyp und ist keineswegs die beste Lösung, aber dies sollte jeden starten.
Mein Tag gerettet .. danke Kumpel – Noman
Ich denke nicht, dass es eine gute Idee ist, starke Hinweise auf Marker über eine Karte zu halten. Da Sie Ihren benutzerdefinierten Fensteradapter trotzdem zum Rendern von Inhalten verwenden, könnten Sie entweder das snippet() oder title() in den MarkerOptions "missbrauchen", um Ihre Informationen zu speichern. Sie sind beide Zeichenfolgen, also hängt die Information ab, dass Sie etwas mehr Speicher verwenden würden, auf der anderen Seite sind Sie vor Speicherlecks geschützt, indem Sie starke Referenzen auf Markierungen halten.
auch, würden Sie kompatibel mit der Art und Weise gehen, wie Maps es persistency während Stops verwaltet und fortfährt.
Ich verwende eine zusätzliche Klasse, um einige Informationen und Funktionen mit jedem Marker zu verbinden. Ich denke nicht, dass dies der beste Ansatz ist, aber es ist eine Option. Vor allem, wenn Sie mehr als nur Informationen zu jedem Kartenmarker haben möchten. Hier ist die Grundstruktur, die ich dafür verwende.
- 1. Google Maps api v2 Zoomen in der Nähe der Markierung
- 2. Google Maps API v2 in Mono für Android hinzufügen
- 3. Android 2.3 und Google Maps API v2
- 4. Google Maps Android API v2 Route Overlay
- 5. Ausblenden Marker Info Fenster in Android Google Maps API v2
- 6. Android - Google Maps api v2 - Zoomsteuerung deaktivieren
- 7. Google Maps API-Markierung basierend auf Daten
- 8. Android Google Maps API v2 Anzeige Route
- 9. Google Maps Android V2 und Direction API
- 10. Google Maps API - Benutzerdefinierte Markierung, kein Bild
- 11. Google Maps: Wie Schatten benutzerdefinierte Markierung hinzufügen?
- 12. Google Maps vergrößern auf Markierung
- 13. Google Maps Android API v2 - MarkerOptions ziehbare und sichtbare Methoden
- 14. Google Maps v2: Autorisierungsfehler
- 15. Android Google Maps v2 Kameraanimation
- 16. Google Maps API v2: LatLngBounds von CameraPosition
- 17. Google Maps v3 API ein Infofenster zu jeder Markierung
- 18. Wie wähle ich eine Markierung mithilfe der Android-API von Google Maps V2 aus?
- 19. Google Maps API v2 grauen Bildschirm
- 20. Mehrere Markierungen in Google Maps Api v2 hinzufügen
- 21. Google Maps api v2 Klasse nicht gefunden
- 22. Google Maps API v2 InfoWindow End-/Zeigergröße
- 23. Map-Markierungen mit Text in Google Maps Android API v2
- 24. Google Maps bewegen Markierung auf klicken
- 25. Limit Scrollen und Zoomen Google Maps Android API v2
- 26. google maps api v2 aus speicherfehler
- 27. Google Maps Android API v2 erstellt eine neue LocationSource
- 28. Offene Straßenkarten mit Android Google Maps Api v2
- 29. Google Maps Android API v2, falscher Marker Ort
- 30. Google Maps Android API V2 Blackout Teil des Layouts
Wie haben Sie die Marker hinzugefügt? als Überlagerung? –
Sie können das Snippet-Feld der Marker-Klasse verwenden. –
Ich habe einen Untertitel im Snippet-Feld, das ist keine Option. Was meinst du als Überlagerung? Ich füge sie mit map.addmarker (... – vdrg