Wie man Bildschirmkoordinaten von der Markierung in google maps v2 android erhält
Habe ich eine kleine android-problem (google maps v2 api)
Dies ist mein code:
GoogleMaps mMap;
Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(20, 20)));
Ich versuche einen Weg zu finden, um den aktuellen Bildschirm-Koordinaten (x,y) für das marker-Objekt.
Vielleicht hat jemand eine Idee? Ich habe versucht, getProjection aber sieht es nicht, um zu arbeiten.
Danke! 🙂
InformationsquelleAutor der Frage mangotasche | 2013-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, verwenden Sie
Projection
Klasse. Genauer gesagt:Bekommen
Projection
von der Karte:Erhalten Sie Position des markers:
Übergeben, Lage der
Projection.toScreenLocation()
Methode:Das ist alles. Jetzt
screenPosition
enthält die position der marker relativ zur oberen linken Ecke der gesamten Karte-container 🙂Bearbeiten
Denken Sie daran, dass die
Projection
Objekt wird erst dann wieder gültige Werte , nachdem die Karte abgelaufen ist der layout-Prozess (d.h. es ist gültigwidth
undheight
set). Du bist wahrscheinlich immer(0, 0)
weil Sie versuchen, Zugriff position der Marker zu schnell, wie in diesem Szenario:Projection
von der Karte für die marker-Positionen auf dem Bildschirm.Dies ist nicht eine gute Idee, da das die Karte nicht gültig, Breite und Höhe festlegen. Sie sollten warten, bis diese Werte gültig sind. Eine der Lösungen ist das anbringen einer
OnGlobalLayoutListener
auf der Karte anzuzeigen und zu warten, für layout-Prozess zu Regeln. Tun Sie es nach dem aufblasen das layout und die Initialisierung der Karte - zum Beispiel inonCreate()
:Bitte Lesen Sie die Kommentare für Ergänzende Informationen.
InformationsquelleAutor der Antwort andr