... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Zwischenposition einfügen -> Abbiegepunkte -> Richtung
#1
Hallo Christian und alle anderen die bei diesem großartigen Projekt mithelfen.

Ich habe gerade durch Zufall dieses wunderbare Stück Software gefunden und bin total begeister die "Abbiege punkte einfügen" Funktion gefunden zu haben, die ich schon so lange Suche.

Als Motorradfahrer würde ich liebend gern eine Route erstellen, oder besser noch fertige nehmen und aus dieser Route ein Roadbook erstellen.

Roadbook bedeutet für mich eine Liste, mit Einträgen die Koodinaten, Richtung (rechts abbiegen, ... ), angestrebter Ort (Hamburg) enthällt.

Viele Funktionen sind ja schon vorhanden:
  • Ich ziehe eine Route
  • Nutze die Funktion: Abbiegepunkte hinzufügen
  • Lösche alle unnötigen Punkte, die ich vorher zum Ziehen benötigt habe
  • Führe wieder die Funktion: Abbiegepunkte hinzufügen aus, falls eine der gerade gelöschten Positionen eine Abbiegestelle war
  • Gehe die Liste Schritt für Schritt durch und benenne sie nach dem Schema "links nach Hamburg" "rechts nach München" etc um

Der letzte Punkt ist nun der Grund meines Schreibens. Wenn ich es richtig einschätze werden durch die "abbiegepunkte-einfügen" Funktion jeweils zwei Punkte an Google übergeben und nach dem Routing gefragt.
Müsste man dann nicht auch Richtung und angestrebter Ort von Google bekommen können ?
Wäre doch auch viel schicker per default diese Informationen einzufügen, an Stelle der "12 Neue Position" Beschriftung.
Reply
#2
(09.01.2012, 22:23)KoljaW Wrote: Ich habe gerade durch Zufall dieses wunderbare Stück Software gefunden und bin total begeister die "Abbiege punkte einfügen" Funktion gefunden zu haben, die ich schon so lange Suche.

Das freut mich.

(09.01.2012, 22:23)KoljaW Wrote:
  • Gehe die Liste Schritt für Schritt durch und benenne sie nach dem Schema "links nach Hamburg" "rechts nach München" etc um

Der letzte Punkt ist nun der Grund meines Schreibens. Wenn ich es richtig einschätze werden durch die "abbiegepunkte-einfügen" Funktion jeweils zwei Punkte an Google übergeben und nach dem Routing gefragt.
Müsste man dann nicht auch Richtung und angestrebter Ort von Google bekommen können ?

Google übergibt derzeit die hier dokumentierten Informationen.

(09.01.2012, 22:23)KoljaW Wrote: Wäre doch auch viel schicker per default diese Informationen einzufügen, an Stelle der "12 Neue Position" Beschriftung.

Ich habe etwas damit herumgespielt und gerade eine neue Vorabversion hochgeladen, die die "instructions" aus der Google Maps API als Beschreibung der neuen Positionen setzt. Ich finde, das ist ein Fortschritt. Probier's mal aus und berichte!
--
Christian
Reply
#3
Hi Christian,
ich bin schwer beeindruckt von deiner Reaktionszeit! Wirklich, Hut ab!
Die Änderung ist fast perfekt, leider sind die Punkte nicht passend zu den Anweisungen, würde ich behaupten,
der Start liegt beim 2. Punkt, abbiegen auf die Karlsstraße soll ich an dem Punkt an dem ich sie wieder verlasse und soweiter.
Kann es sei das da ein Versatz drin steckt ?
Vielen Dank aber schonmal für die Änderung,
Gruß Kolja
Reply
#4
(10.01.2012, 08:20)KoljaW Wrote: ich bin schwer beeindruckt von deiner Reaktionszeit! Wirklich, Hut ab!

Danke.

(10.01.2012, 08:20)KoljaW Wrote: Die Änderung ist fast perfekt, leider sind die Punkte nicht passend zu den Anweisungen, würde ich behaupten,
der Start liegt beim 2. Punkt, abbiegen auf die Karlsstraße soll ich an dem Punkt an dem ich sie wieder verlasse und soweiter.
Kann es sei das da ein Versatz drin steckt ?

Jein. Wenn die Instruktionen für einen Abbiegepunkt einen Schrägstrich enthielten, so wurden sie als Teil der nächsen Position gedeutet. Ich hoffe, die gerade hochgeladene Vorabversion ist besser?
--
Christian
Reply
#5
Hi, ich habe gerade die Version 173 (Snapshot) getestet und leider finde ich dort das gleiche Verhalten ..
Gruß Kolja
Hi, ich nochmal.
Ich habe gerade mal dein git respository gecloned und mir die Sourcen angesehen. Ist natürlich alles andere als einfach, bei dem Umfang Big Grin

Wenn ich das richtig sehe, wird in der BaseMapView.java in der private List<String> parseCoordinates(String coordinates) {} die Antwort von Google verarbeitet, kann das sein ?

Jetzt fehlt mir zwar ein Beispiel, wie so eine Antwort aussieht, aber offensichtlich sind sie ja per "/" getrennt.
latitude/longitude/meters/seconds/instruction .... natürlich isses jetzt doof, wenn in der Instruction ein "/" drin vorkommt, weil er dann wieder trennen würde .. sehe ich ein, aber bist du dir sicher das es daran liegt ?

Ich habe auch mal versucht mich etwas in die API einzulesen, natürlich nur sehr oberflächlich, aber ich habe gesehen, das in so einem "leg" start-koordinaten, end-koordinaten, .... , Anweisung übermittelt werden.
Nicht das du jetzt die Informationen der Punkte nimmst, die END-Koordianten parst und die Anweisung, die zu den Endkoordinaten führt in "result" packst und damit alle Anweisungen eben ein Feld verschoben sind.

Kann durchaus quatsch sein, was ich hier erzähle, wollte nur versuchen zu helfen Big Grin
Gruß Kolja
Reply
#6
§"&/!)"§*

Da habe ich über eine Seite geschrieben ( viele viele Sätze ) und dann geht mein Laptop aus, weil ich kontinuierlich die Batterie Warnung missachtet habe. So ein Mist Big Grin
Naja jedenfalls hab ich den "Fehler" gefunden. Google gibt dir stehts an der Ziel Position die Anweisung wie du dort hin gekommen wärst.
Total doof wenn du mich fragst.
Ich würde vorschlagen, folgendes Bugfix einzusetzen:


// result[n*5+4]=Instruction,
// result[4]=result[9]
// result[9]=result[14] ...
// if 3 Positions, count=15, i should be 4,9 but not 14,
// as there is no last instruction
for(int i=4;i+5<result.count();i+=5){
result[i]=result[i+5];
}
result[result.count()-1]="Ziel erreicht!";

Bin mir syntaktisch nicht sicher, da Java nicht so meine Sprache ist, aber du wirst verstehen was ich vor habe.
Das ganze müsste dann in der BaseMapView.java ab Zeile 1502, hinter der while() Schleife eingesetzt werden.
Hoffe das findet deine Zustimmung Big Grin oder dient zumindest als Inspiration um das Problem zu lösen.

Gruß Kolja
Reply
#7
(11.01.2012, 13:44)KoljaW Wrote: Hi, ich habe gerade die Version 173 (Snapshot) getestet und leider finde ich dort das gleiche Verhalten ..

Kannst Du mir ein Beispiel zum Nachvollziehen schicken und erklären, wie ich den Effekt bei mir sehe?

(11.01.2012, 13:44)KoljaW Wrote: Ich habe gerade mal dein git respository gecloned und mir die Sourcen angesehen. Ist natürlich alles andere als einfach, bei dem Umfang Big Grin

Ich wünschte auch, es wäre weniger.

(11.01.2012, 13:44)KoljaW Wrote: Wenn ich das richtig sehe, wird in der BaseMapView.java in der private List<String> parseCoordinates(String coordinates) {} die Antwort von Google verarbeitet, kann das sein ?

Richtig.

(11.01.2012, 13:44)KoljaW Wrote: Jetzt fehlt mir zwar ein Beispiel, wie so eine Antwort aussieht, aber offensichtlich sind sie ja per "/" getrennt.
latitude/longitude/meters/seconds/instruction ....

Richtig.

(11.01.2012, 13:44)KoljaW Wrote: natürlich isses jetzt doof, wenn in der Instruction ein "/" drin vorkommt, weil er dann wieder trennen würde .. sehe ich ein, aber bist du dir sicher das es daran liegt ?

In meinem Testfall ja, darum habe ich den Commit gestern gemacht:
https://github.com/cpesch/RouteConverter...5d65d4c6d3

Und dort den regulären Ausdruck in routeconverter.html gefixt.

(11.01.2012, 13:44)KoljaW Wrote: Ich habe auch mal versucht mich etwas in die API einzulesen, natürlich nur sehr oberflächlich, aber ich habe gesehen, das in so einem "leg" start-koordinaten, end-koordinaten, .... , Anweisung übermittelt werden.

Schau Dir mal routeconverter.html an, dann siehst Du wie ich in insertOnlyTurnpoints() und insertAllWaypoints()) die Daten aus dem Google Maps API in POST-Requests mit / übersetze:

https://github.com/cpesch/RouteConverter...erter.html

(11.01.2012, 13:44)KoljaW Wrote: Kann durchaus quatsch sein, was ich hier erzähle, wollte nur versuchen zu helfen Big Grin

Danke
--
Christian
Reply
#8
Hi, ja in meinem Supertext war auch ein ausführliches Beispiel, bei dessen Interpreation ich mich wunderbar durch deinen Quelltext hangeln konnte.

Reproduktionsvorgehen:
1. Applikationsstart
2. Position -> orte finden -> "hannover, helmholtzstraße 6" -> Einfügen
3. "hannover, im Moore 11a" -> Einfügen
4. Position -> Zwischenposition einfügen -> "Alles markieren" -> "Abbiegepunkte einfügen"

z.B. die 3. Position: "Links abbiegen auf Halkettstraße"
aber in der Realität verlässt man gerade die Halkettstraße und fährt rechts auf die Philipsbornstraße.
Die passende Anweisung "2. rechts auf Philipsbornstraße nehmen" steht dafür aber in der 4. Position


Das wird daran liegen, das der Google Request folgendes Ergebnis liefert:

FEIN: processing callback:
POST /5/generic-post-url/ HTTP/1.1
Host: 127.0.0.1:54910
Origin: file://
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+
Content-Type: application/xml
Accept: */*
Accept-Encoding: gzip
Connection: Keep-Alive
Content-Length: 831
Insert-Only-Turnpoints: 301623861/52.39354/9.726239999999962/77/6/Von Helmholtzstraße nach Süden Richtung Halkettstraße starten/52.39308/9.729389999999967/225/35/ Links abbiegen auf Halkettstraße /52.39132000000001/9.730670000000032/214/47/2. rechts auf Philipsbornstraße nehmen/52.38726/9.723420000000033/685/106/3. rechts auf Kopernikusstraße nehmen/52.38700000000001/9.721970000000056/104/71/Weiter auf An der Lutherkirche /52.3851/9.722319999999968/213/29/ Links abbiegen auf Am Kleinen Felde /52.38531/9.720720000000028/112/22/1. rechts auf Asternstraße Im Moore nehmen/52.38329/9.72126000000003/232/22/1. links nehmen, um auf Asternstraße Im Moore zu bleiben Weiter auf Im Moore /52.38319000000001/9.720839999999953/30/8/Bei Nelkenstraße rechts abbiegen Das Ziel befindet sich links


Die Daten werden ja nach dem Schema:
result[0]=52.39132000000001
result[1]=9.730670000000032
result[2]=214
result[3]=47
result[4]=2. rechts auf Philipsbornstraße nehmen

zerlegt, aber an den Koordinaten result[0]/result[1] verlässt man gerade die Philipsb. wieder ..
Ich hoffe du verstehst was ich meine Big Grin
Gruß Kolja
Reply
#9
(11.01.2012, 15:50)KoljaW Wrote: Naja jedenfalls hab ich den "Fehler" gefunden. Google gibt dir stehts an der Ziel Position die Anweisung wie du dort hin gekommen wärst.

Ich habe eine Strecke genommen, die ich kenne und beobachtet, daß die Abbiegehinweise korrekt waren, wenn ich für eine Position die Hinweise für die nächste Position nehme. Und ich filtere nun Sonderzeichen, Klammern und füge Kommata ein. Das nähert sich immer mehr einem Roadbook.

Eine neue Vorabversion mit diesem Verhalten liegt zum Testen bereit. Klappt es nun bei Dir besser?
--
Christian
Reply
#10
Jupp, ist genau das was ich meinte ... zwar an ner anderen Stelle, aber im Endeffekt isses TOP Big Grin

Dankä
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)