Apps für Android programmieren leicht gemacht!
Maps Api - Kreise zeichnen

Maps Api – Kreise zeichnen

In einem vorangegangenem Artikel haben wir geklärt, wie wir eine Google Maps Karte in unsere App integrieren. Es ist nun an der Reihe zu lernen, wie wir einen/mehrere Kreis/Kreise auf unserer Karte zeichnen können.

 

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;
}

 

 

Kreis setzen:

Da wir eine initialisierte Variable gMap haben, können wir jetzt einen/mehrere Kreis/Kreise zeichnen.
Selbstverständlich können wir noch ein paar Anpassungen durchführen. Beispielsweise könnten wir die Farbe der Kreise einstellen oder aber den Radius.

CircleOptions kreisOptionen = new CircleOptions()
    .center(new LatLng(37.4, -122.1))
    .radius(1000)); // Durchmesser in Metern

Circle kreis = gMap.addCircle(kreisOptionen);

 

Ihr könnt selbstverständlich so viele Punkte zu eurer Linie hinzufügen, wie ihr wollt.
Am Ende werden alle Punkte ihrer Reihenfolge nach mit Linien verbunden.

 

Anpassungen:

Wollen wir die Farbe der äußeren Linie verändern, dann können wir nach dem erstellen des Objektes „kreis“ schreiben:

kreis.color(0xff0B15A0); //Beliebige Farbe, im 32-bit ARGB Format

 

Wollen wir die Farbe des Inhaltes (Füllfarbe) verändern, dann können wir nach dem erstellen des Objektes „kreis“ schreiben:

kreis.fillColor(0xff0B15A0); //Beliebige Farbe, im 32-bit ARGB Format

 

Alternativ oder aber zusätzlich könnten wir vielleicht noch die Dicke der äußeren Linie verändern wollen:

kreis.width(10F); // Die Standarddicke ist 10. Es muss ein Float übergeben werden.

 

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