Nachkommastellen für Geokoordinaten

Ich wollte Geokoordinaten in einer SQL-Datenbanktabelle speichern und fragte mich, welche Auflösung / wieviel Nachkommastellen ich bei den DECIMAL -Werten konfigurieren sollte.

Kartendienste

OpenStreetMap nutzt in der URL maximal 5 Nachkommastellen. Google Maps nutzt immer 7 Nachkommastellen, um Koordinaten in der URL einzubetten. Bing wiederum nutzt 6 Nachkommastellen :)

Mathe

Ein Kreis hat 360°, und Geokoordinaten laufen von -180° bis +180°. Drei Stellen vor dem Komma sind also schonmal gesetzt.

Für die Anzahl der Nachkommastellen müssen wir wissen, wieviel Kilometer mit einem Grad, einem Zehntel, einem hunderstel Grad und so weiter ausgedrückt werden.

Die Erde ist näherungsweise eine Kugel, und wir wollen deshalb eigentlich die Länge eines Kreisbogens mit einem bestimmten Winkel berechnen.

Die Länge eines Bogens b ist b = π × r × α / 180°.

Der Radius der Erde ist 6378,16 Kilometer, also bekommen wir folgende Tabelle:

Stellen Grad Länge eines Grades
0 1 111,31 km
1 0,1 11,13 km
2 0,01 1,11 km
3 0,001 111,3 m
4 0,0001 11,1 m
5 0,00001 1,11 m
6 0,000001 0,1 m
7 0,0000001 11,1 mm
8 0,00000001 1,1 mm
9 0,000000001 0,11 mm

Wenn man eine metergenaue Auflösung haben möchte, muss man mindestens 6 Nachkommastellen nehmen.

Das ist in MySQL DECIMAL(9,6) (9 Stellen insgesamt, 6 Nachkommastellen).

Written by Christian Weiske.

Comments? Please send an e-mail.