Android Map App mit Android Studio entwickeln?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Auf der Karte soll man benutzerdefinierte Spots einfügen können. Was benötige ich für die Umsetzung?

Ein bisschen Erfahrung in der Android-App-Programmierung solltest du natürlich schon haben. Hier findest du schonmal erste Schritte von offizieller Seite:

https://developers.google.com/maps/documentation/android-api/start?hl=de

Dort ist auch erklärt, wie man Marker hinzufügt.

Auf was muss ich bei der Entwicklung achten?

Eigentlich ist das ganze eine relativ einfache Sache. Wenn du schon Erfahrung mitbringst, sollte das für dich definitiv kein großes Problem darstellen. 

ich möchte eine App entwickeln, die Google Maps Karten nutzt.

Ich persönlich nutze recht ungern Google Maps aus folgenden Gründen:

  1. Um in einer App Google Maps nutzen zu können, benötigst du einen API-Key. Dieser kostest zwar nichts, ist aber etwas umständlich zu beschaffen.
  2. Die Lizenzbedingungen von Google Maps sind kompliziert und verbieten alles Mögliche. Solltest du auf jeden Fall lesen, wenn du die App irgendwo vertreiben willst: https://developers.google.com/maps/terms?hl=de

Stattdessen nutze ich gerne osmdroid. Das ist ein Open-Source-Projekt, das auf dem Kartenmaterial von Openstreetmaps.org (OSM) basiert. Es wird ähnlich wie Wikipedia von der Community gepflegt, d.h. jeder kann z.B. ein fehlendes Toilettenhäuschen einzeichnen oder eine verrutschte Bushaltestelle an die richtige Stelle schieben. Dadurch ist das Kartenmaterial teilweise sogar aktueller als das von Google Maps. Meine Straße (Neubaugebiet) ist bei Google Maps z.B. noch ein Feld, während bei osmdroid sogar der richtige Straßenname vorhanden ist. Weitere Informationen:

https://github.com/osmdroid/osmdroid

https://github.com/MKergall/osmbonuspack

Viele Grüße!

dennis580996 
Fragesteller
 15.07.2017, 16:49

Danke für deine umfangreiche Antwort :)

Ich hatte vor 2 Monaten mit Java angefangen. Hab jetzt aber ne Zeit lang nichts mehr gemacht. Ist osmdroid denn leicht in die App einzufügen? Ich wollte nämlich eine App erstellen, in der man Trainingsorte für Parkour laufen eintragen kann. Ein Kumpel und ich haben vor zwei Tagen damit angefangen. Durch eine andere Frage wurde mir ein deutscher Youtuber genannt. Dort wurde die Idee in den Kommentaren diskutiert.

Die Idee war nämlich eine App zu erstellen, in der die User Orte mit Bild und Informationen hinzufügen können. Auf der Karte soll denn eine Markierung sein. Diese ist denn für alle anderen User sichtbar. Theoretisch bräuchte ich noch einen Server oder? Und eine Datenbank?

Gruß Dennis

0
tavkomann  15.07.2017, 17:42
@dennis580996

Ich hatte vor 2 Monaten mit Java angefangen.

Lass dir besser noch ein bisschen Zeit mit Java. Nur, weil man Java halbwegs kann, kann man noch keine Android-Apps entwickeln. Dieses Thema solltest du getrennt behandeln, v.a. weil sich die Android-Entwickler da so einiges ausgedacht haben...

Ist osmdroid denn leicht in die App einzufügen?

Ja, musst alles in Gradle einbinden, dann kannst du schon die Karte einfügen. Die Methoden zum Zentrieren auf einen Punkt, Einzeichnen eines Markers sowie Berechnen/Einzeichnen einer Route sind relativ gut verständlich, wobei sich die meisten davon im osmbonuspack befinden.

Ich wollte nämlich eine App erstellen, in der man Trainingsorte für Parkour laufen eintragen kann. [...] Die Idee war nämlich eine App zu erstellen, in der die User Orte mit Bild und Informationen hinzufügen können. Auf der Karte soll denn eine Markierung sein. Diese ist denn für alle anderen User sichtbar. 

Die Orte kann man mit den Markern einzeichnen. Man kann diesen einen OnClickListener hinzufügen, sodass bei einem Klick Bild und Informationen angezeigt werden können. Man kann auch mit diesen Bubbles arbeiten. Klick dich einfach durch die beiden Links. Das sind viele Seiten. Dort ist alles ganz ausführlich mit Beispielen beschrieben, sodass du selbst entscheiden kannst, was am besten geeignet ist.

Theoretisch bräuchte ich noch einen Server oder? Und eine Datenbank?

Ja, brauchst du, um die Bilder und die Informationen abzuspeichern. Deshalb solltest du dich zusätzlich in Datenbanken mit Java einarbeiten. Ich kann dir MariaDB oder MySQL empfehlen.

Zwei Dinge möchte ich dir noch mitgeben:

  1. Bitte beachte beim Einarbeiten in Datenbanken unbedingt die Prepared Statements mit großer Sorgfalt. Gerade auf Gutefrage.net gibt es sehr viele Leute, die diese Prepared Statements nicht nutzen und somit ein großes Sicherheitsrisiko (SQL-Injection) in ihren Programmen verursachen.
  2. Bitte erstelle immer getrennte DB-Nutzer. Für dein Vorhaben brauchst du erstmal zwei: Einen zum Einfügen neuer Punkte (INSERT) und einen zum Auslesen der Punkte (SELECT). Solltest du außerdem die Möglichkeit zum Löschen einbinden wollen, kann ich dir nur sehr stark empfehlen, dich zusätzlich in PHP einzuarbeiten und damit die ganze Datenbankarbeit zu erledigen, weil dadurch Authentifizierung ermöglicht wird. Sonst könnte nämlich jeder einfach alle Punkte löschen, weil das Passwort in der App eincodiert ist. Mit PHP kannst du dafür sorgen, dass jeder nur seine Punkte löschen kannst. Hier ein Buch, falls es dich interessiert:https://www.amazon.de/Einstieg-PHP-MySQL-Programmieranf%C3%A4nger-programmieren/dp/3836244969/ref=sr_1_3?ie=UTF8&qid=1500132636&sr=8-3&keywords=rheinwerk+computing+phpSollten die Punkte aber nicht löschbar sein, benötigst du nicht zwingend PHP.

Solltest du weitere Fragen haben, kannst du dich jederzeit wieder melden.

0

Moin,
Ich würde in anderen Foren nach Antworten suchen ;)
Hier ist das Thema zu "unbekannt" würde ich meinen...
Viel Erfolg!

dennis580996 
Fragesteller
 15.07.2017, 11:39

Danke werde ich machen :)

0