Apps für Android programmieren leicht gemacht!
Google Maps in unserer App

Google Maps in unserer App

Heute möchten wir uns gerne einmal mit der Einbindung einer Google Maps Karte in unserer App beschäftigen.
Ich habe heute eine kleine App für eine Freundin geschrieben, welche demnächst auf Wanderurlaub geht. Damit ihre Familie weiß, wo sie sich aufhält und wie weit sie bereits gekommen ist, kommt eine Google Maps Karte zu tragen. Es wird jede Stunde ein Standort von ihrem Handy gesendet und alle Familienmitglieder können dann in der selben App auf einer Google Maps Karte sehen, wo sie ist.

Wir werden uns in diesem Artikel vorerst nur damit beschäftigen, wie wir die Karte in unserer App anzeigen lassen kann. Später werden dann noch zusätzliche Funktionen folgen, wie das Setzen von Markierungen, das Zoomen auf einen Bereich und ähnliche Dinge.

 

API-Schlüssel:

Wir benötigen für unsere Karte einen API-Schlüssel. Am Besten wäre es, wenn wir direkt einen Schlüssel für das Veröffentlichen und einen Schlüssel für das Testen erstellen. Eine genau Anleitung gibt es in diesem Artikel: Google Cloud API-Key erhalten

 

Android_Manifest.xml:

Wenn wir unseren API-Schlüssel erhalten haben, dann müssen wir diese auch in die Android_Manifest.xml Datei einfügen.
Die android_manifest.xml-Datei sollte in etwa so aussehen:

<manifest>

  [...]

  <application>

    [...]

    <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <!-- API Key zum Veröffentlichen -->
        <!--<meta-data android:name="com.google.android.geo.API_KEY"
            android:value="[Hier den API Key zum veröffentlichen einfügen]" />-->

        <!-- API Key zum Debuggen -->
        <meta-data android:name="com.google.android.geo.API_KEY"
            android:value="[Hier den API Key zum debuggen einfügen]" />

    [...]

  </application>

  [...]

</manifest>

 

Abhängigkeiten:

So weit so gut.
Wir haben mindestens einen API-Schlüssel und diesen/diese auch in die android_manifest.xml-Datei eingefügt.
Bevor wir nun allerdings beginnen können zu programmieren, fehlt noch eine Kleinigkeit.
Wir müssen definieren, dass wir eine Abhängigkeit zu einer Library haben.

Öffnet die Datei „build.gradle (Module: app)“ und fügt in die {}-Klammern von „dependencies“ ein:

compile 'com.google.android.gms:play-services-location:9.0.2'

 

Google Maps Karte einfügen:

Schlussendlich bedarf es nur noch einen kleinen Stück Code, welcher z. B. in der Methode „onCreate“ aufgerufen wird:

MapFragment mMapFragment = MapFragment.newInstance();
        FragmentTransaction fragmentTransaction =
                getFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.mein_container, mMapFragment);
        fragmentTransaction.commit();

Wir müssen nur noch ein Relative- oder Linearlayout mit der ID „mein_container“ definieren.

Fertig!

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.

4 Kommentare

*Pflichtfeld

  • Hallo Marvin,
    Ich versuche zur Zeit auch eine ähnliche App zu programmieren, wie du sie für deine Freundin programmiert hast.
    Könntest du den Code vielleicht zeigen?
    Die Map und meinen GPS habe ich schon :))
    Gruß Orhan

    • Ich werde sehen ob ich die Daten noch finden kann.
      Die App war so geschrieben, dass jeder den Standort der Anderen sehen kann und gleichzeitig den eigenen Standort freigibt.

      Gruß

  • Meine nächste Frage wäre, müssen die Daten nicht auf einem Server o.ä. gespeichert werden, damit die Familienmitglieder die GPS-Daten von deiner Freundin irgendwo abrufen können ?

    • Ja, das ist richtig.
      Man kann die Daten theoretisch bei Google speichern (habe mich damit aber noch nicht beschäftigt) oder auf einem Webserver (bei mir war es meine NAS Zuhause mit statischer IP).

      Gruß