Android Google Maps: Wie bekomme ich den Bereich, der gerade auf dem Bildschirm angezeigt wird?

7

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!

    
longilong 17.04.2013, 09:27
quelle

3 Antworten

21

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.

    
MaciejGórski 17.04.2013, 16:04
quelle
7

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!

    
cosic 21.10.2013 15:44
quelle
0

Dies berechnet das Radio in km basierend auf der Kartenbreite:

%Vor%     
Khaleesi 21.03.2018 17:36
quelle