Route erstellen mit google maps

  • Antworten:7
  • Bentwortet
ilyas i.
  • Forum-Beiträge: 61

16.12.2011, 14:08:26 via Website

Ich habe eine MapActivity, wo ich zunächst die Karte(MapView) lade.

Nun möchte ich eine Route erstellen von A nach B .

Gibt es da irgendwo eine möglichkeit, sowas zu machen?

Antworten
Florian B.
  • Forum-Beiträge: 284

16.12.2011, 15:54:30 via Website

Die Frage ist, willst du die Route wirklich selber zeichnen, um dort noch weitere eigene Informationen anzeigen zu lassen, oder geht es dir darum aus deiner App heraus eine Route anzeigen zu lassen.

Für letzteres kannst du die Aufgabe einfach an Google Maps bzw. den Browser delegieren. Dazu musst du einfach folgenden Code ausführen.

1Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
2Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
3startActivity(intent);

Wenn auf dem Gerät GoogleMaps installiert ist, dann wird die Route dort angezeigt, wenn nicht, dann wird sie im Browser angezeigt.

Willst du allerdings die Route selber auf der MapView einzeichnen, dann wird es stwas komplizierter, da du erst mal an die Wegpunke der Route kommen musst. Wenn du die schon haben solltest, dann musst du sie nur noch mit Hilfe einer Overlay-Klasse einzeichnen.

Solltest du die Wegpunkte noch benötigen, dann kannst du diese über einen Aufruf von maps.google.com abfragen. Allerdings ist das von Google inzwischen verboten worden. Mehr Infos dazu gibts unter folgender Stackoverflow Frage.

Antworten
ilyas i.
  • Forum-Beiträge: 61

17.12.2011, 14:44:51 via Website

Hallo Florian,

danke erstmals für deine Hilfestellung.

Mir geht es hauptächlich darum, eine Route zu zeichnen und auf dessen geammte drawingcache zu kommen. Deshalb habe ich eine MapView, womit ich auf den drawingcache kriegen kann. Wenn ich eine Activity starte, wie in deinem Beispiel, würde ich diesen Cache nicht bekommen. Oder irre ich mich da?

Deshalb kommt die Frage, wie ich eine eigene Rotue zeichnen kann.

— geändert am 17.12.2011, 14:45:48

Antworten
Florian B.
  • Forum-Beiträge: 284

17.12.2011, 16:40:14 via Website

Ja, da hast du natürlich vollkommen recht, wenn du das über die erste Variante machst, dann passiert alles danach was die Route angeht, natürlich außerhalb deiner Kontrolle. Mir war nur nicht ganz klar, wo bei dir die Reise genau hingehen sollte.

Um eine Route zu Zeichnen, musst du eine Klasse implementieren die von der Klasse Overlay ableitet. Deine Overlay-Klasse kannst du dann der MapActivity hinzufügen, dadurch wird sie dann automatisch mitgezeichnet. Das Zeichnen der Route selbst passiert dann in der draw() Methode die du in deiner Overlay-Klasse überschreiben musst.

Schau dir mal dieses Tutorial an.

Antworten
ilyas i.
  • Forum-Beiträge: 61

17.12.2011, 17:52:27 via Website

Verstehe ich das richtig:

1. Geodaten des Benutzers über den Locationmanger.
2. Geodaten des Ziels über eine Anfrage an google.
3. beide Daten Zusammen wieder an google
4. erhalten eines DOM baumen, welche geparst werden muss um den "weg" zu bekommen.
5. anschliessend die Daten in der Draw Methode Zeichnen?

Antworten
Florian B.
  • Forum-Beiträge: 284

18.12.2011, 11:25:53 via Website

Also Schritte 3-5 sind korrekt. Bei 1 und 2 kommt es darauf an was du machen möchtest. Ich glaube du kannst in dir URL entweder GPS Koordinaten aber auch Adressen einfügen. Hier kannst du mehr nachlesen über mögliche Parameter.

Antworten
ilyas i.
  • Forum-Beiträge: 61

19.12.2011, 14:34:04 via Website

Ich habe mich etwas falsch ausgedrückt. Was ich eigentlich will ist die Navigation. Sodass ich eine Zieladresse eingebe und die Route erstellt und navigiert wird. So wie du es sagts kann ich ja nur den weg Zeichenen aber nicht Navigieren. GoogleMaps macht das schon nur ich würde nicht an die drawingCache kommen. Es müsste für sowas doch eine einfachere Lösung geben, ohne dass ich eine Navigation implementeiren muss?

Antworten
Florian B.
  • Forum-Beiträge: 284

19.12.2011, 15:07:03 via Website

Nein, das was du vor hast geht meines Wissens nach nicht. Wie gesagt, du kannst Google Maps aus deiner App heraus starten und dort gleich eine Start- und Zieladresse mit übergeben, für die dann die Navigation in Google Maps gestartet werden kann. Du wirst aber nie darauf zugreifen können, was Google Maps zeichnet.

Wenn müsstest du die Navigation selber bauen, allerdings verbietet dies die Google Maps API Bestimmungen.

Antworten