Gibt es eine Möglichkeit, die Koordinaten des aktuellen Bereichs zu ermitteln, der am Gerät angezeigt wird?
Hintergrund ist, wir wollen "nahe gelegene" Orte zeigen, die in unserer eigenen Datenbank gespeichert sind. Nehmen wir an, der Benutzer betrachtet den folgenden Ausschnitt einer Karte:
Wie erhalten wir den Längen- / Breitengrad des Bildschirms (oder den Punkt in der Mitte des Bildschirms und einen Radius, der alles abdeckt?). Bitte beachten Sie, dass der Mittelpunkt der Karte normalerweise nicht die aktuelle Position ist, da der Benutzer die Mitte der Karte verschieben kann!
Verwenden Sie map.getProjection().getVisibleRegion()
. Von VisibleRegion
können Sie LatLngBounds
erhalten, womit Sie einfach arbeiten können. Sie können auch direkt mit der Region versuchen, die trapezförmig sein könnte.
Ich habe die Lösung für Google Map API v2 aus wenigen Antworten gefunden:
stackoverflow # 1 und stackoverflow # 2
Sie müssen also die Aktivität von GoogleMap.OnCameraChangeListener implementieren Schnittstelle
%Vor%Der Listener, der arbeitet, wenn die Karte skaliert wird. Bestimmen Sie als LatLng die Positionen von unten links, unten rechts, oben links und oben rechts auf der Karte, die auf dem Bildschirm angezeigt wird. Durch die größte Seite des Bildschirms und zwei Punkte können wir den Radius vom Mittelpunkt der Karte erhalten.
%Vor%Zurückgelegte Entfernung zwischen 2 Punkten, gespeichert als 2-Paar-Position in Metern;
%Vor%Wenn Sie Radius des Bereichs erhalten möchten, muss das, das auf Bildschirm gezeigt wurde, nur durch 2 geteilt werden.
Ich hoffe, es wird nützlich sein!
Tags und Links android google-maps coordinates