[LinuxOB] GPS Daten

Alexander Müller visus at visusnet.de
Di Feb 5 13:02:36 CET 2008


Michael Gisbers schrieb:
>> Mal ins Blaue geschossen....
>>
>> Reicht nicht ein Terminal-Programm am "seriellen" Anschluss lauschen
>> zu lassen?
> 
> Wenn der Garmin in den richtigen Modus geschaltet ist, dann sollte das gehen.
> 
> Aber ich kann auch mal meinen Empfänger während einer Autofahrt laufen lassen. 
> Das sollte auch einiges an Daten erzeugen.

Ich habe schon eine Alternative gefunden: www.openstreetmap.org
Da gibt es einen Haufen GPX Dumps, die man dann mit GPSBabel in 
NMEA-Files uebersetzen kann. Leider kann ich so schlecht testen, ob 
meine Distanzberechnung funktioniert. Das ist leider relativ schwer zu 
berechnen und ohne eine Teststrecke mit genau X Metern kann ich die 
Berechnung nicht genau nachvollziehen und eventuelle Fehler ausmerzen.

Meine aktuelle Berechnung laeuft wie folgt (Java):

-- snip --

class ...
{
	static double originLat = 0;
	static double originLng = 0;
	static double distance;
	static int i = 0;
...

	public void dataDetectedEvent(NMEAEvent e)
	{		
		if (this.getDevicePrefix() == "GP")
		{
			GeoPos position = StringParsers.parseGGA(e.getContent());

			i++;

			if (originLat == 0 && originLng == 0)
			{
				originLat = Math.toRadians(position.lat);
				originLng = Math.toRadians(position.lng);
				distance = 0;
			}
			else
			{
				distance += 
Math.abs(6371*(Math.acos((Math.sin(originLat)*Math.sin(Math.toRadians(position.lat))+Math.cos(originLat)*Math.cos(Math.toRadians(position.lat))*Math.cos(Math.toRadians(position.lng)-originLng)))));
			}
			
			originLat = position.lat;
			originLng = position.lng;
		
			if (position != null)
			{
				System.out.println(i + ". - Latitude: " + 
position.getLatInDegMinDec() + " Longitude: " + 
position.getLngInDegMinDec() + " Weg: " + Math.round(distance / 1000) + 
" km");
			}
		}
		else if (this.getDevicePrefix() == "II")
		{
			/* Analog fuer Hydra Geraete */
		}
	}
...
}
-- snip --

Und irgendwie glaube ich nicht, dass die errechneten Werte stimmen. Die 
Ergebnisse liegen nach Augenmass ca. 10% daneben.

Alexander



Mehr Informationen über die Mailingliste linux