Apps für Android programmieren leicht gemacht!
Maps Api - Automatischer Zoom

Maps Api – Automatischer Zoom

In einem vorangegangenem Artikel haben wir geklärt, wie wir eine Google Maps Karte in unsere App integrieren. An dieser Stelle möchte ich gerne einmal den automatischen und animierten Zoom in die Karte aufgreifen.

Dieser Zoom ermöglicht es uns an einen beliebigen Punkt in unserer Karte zu zoomen. Eine Animation ist selbstverständlich inbegriffen.

 

Callback definieren:

Bevor wir beginnen können bedarf es einer definierten Variable vom Typ „GoogleMap“.
Diese Variable bekommen wir, wenn die Funktion „onMapReady“ aufgerufen wird.
Leider müssen wir erst einmal dahin kommen, dass unsere App diese Funktion aufweist und sie auch aufgerufen wird.

Damit unsere App und auch die Google Maps Api weiß, dass es eine solche Funktion gibt, müssen wir unsere Klasse um ein „implements OnMapReadyCallback“ erweitern.
Dies sieht in meinem Fall so ähnlich aus:

public class MainActivity extends Activity implements OnMapReadyCallback {
    
    @Override
    public onCreate(...){
        [...]
    }

    [...] 

}

 

Wir definieren nun eine globale Variable vom Typ „GoogleMap“.
Schreibt dazu in die Klasse, aber nicht in eine der Methoden:

GoogleMap gMap;

 

Um die Variable beschreiben zu können müssen wir nun die Methode „onMapReady“ erstellen und in dieser die Variable „gMap“ abgreifen und speichern:

@Override
public void onMapReady(GoogleMap map) {
    gMap = map;
}

 

 

Zoomen:

Kommen wir nun zu unserem eigentlichen Begehren. Dem Zoomen in eine Karte hinein.

Unser Befehl zum Zoomen sieht so aus:

if(gMap != null){
    gMap.animateCamera(CameraUpdateFactory.newLatLngZoom([Double der Latitude], [Double der Longitude]), 14));
}

Wir müssen vor dem Zoom prüfen, ob unsere Variable gMap auch wirklich initialisiert ist und unser Zoom somit erst nach oder in der Funktion „onMapReady“ ausgeführt wird.
Latitude und Longitude sind die englischen Wörter, für Längen- und Breitengrad.
Die „14“ steht für den Grad des Zooms. Eine große Zahl beschreibt einen starken Zoom (ihr geht nah dran). Eine kleinere Zahl beschreibt einen leichten Zoom (ihr bleibt weiter weg).
Sollte die Karte bei euch nicht zoomen, dann habt ihr entweder falsche Längen- oder Breitengrade angegeben oder ihr führt diesen Code noch vor „onMapReady“ aus.

Sollte der Nutzer während oder kurz vor dem Befehl des Zoomens eigenständig zoomen, so wird der automatische Zoom abgebrochen.

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld