Geohash: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) |
Stefan (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
− | Geohash ist ein (Geo-)Codierungs- | + | Geohash ist ein (Geo-)Codierungs-Algorithmus für zweidimensionale geografische Koordinaten (latitude/longitude, bzw. Breiten- und Längengrad). Geohash ist nicht zu verwechseln mit '[[Geocaching|Geocashing oder Geohashing]]' (das ein Spiel ist). |
Beispiel: Die Koordinaten -25.382708 / -49.265506 werden zum Geohash-Code '6gkzwgjzn820' codiert; -25.383 / -49.266 wird zu '6gkzwgjz'. | Beispiel: Die Koordinaten -25.382708 / -49.265506 werden zum Geohash-Code '6gkzwgjzn820' codiert; -25.383 / -49.266 wird zu '6gkzwgjz'. | ||
Zeile 23: | Zeile 23: | ||
** [http://www.nearby.org.uk/api/convert-help.php nearby.org.uk Geocoder] | ** [http://www.nearby.org.uk/api/convert-help.php nearby.org.uk Geocoder] | ||
* Source Code: | * Source Code: | ||
− | ** [http://github.com/kungfoo/geohash-java/tree/master Geohash-Java (kungfoo)] | + | ** [http://github.com/kungfoo/geohash-java/tree/master Geohash-Java (kungfoo)] ('''empfohlen''') |
** [http://code.google.com/p/geospatialweb/source/browse/#svn/trunk/geohash/src Geohash Encoder/Decoder in Java] from Google Code | ** [http://code.google.com/p/geospatialweb/source/browse/#svn/trunk/geohash/src Geohash Encoder/Decoder in Java] from Google Code | ||
** [http://github.com/davetroy/geohash/tree/master Improved Geohash Gem for Ruby] from Dave Troy (aktuell), [http://github.com/davetroy/geohash-js/tree/master Javascript] | ** [http://github.com/davetroy/geohash/tree/master Improved Geohash Gem for Ruby] from Dave Troy (aktuell), [http://github.com/davetroy/geohash-js/tree/master Javascript] | ||
* Blogs/Articles: | * Blogs/Articles: | ||
** [http://www.geospatialsemanticweb.com/2008/05/29/geohash-for-spatial-index-and-search geospatialsemanticweb-Blog] | ** [http://www.geospatialsemanticweb.com/2008/05/29/geohash-for-spatial-index-and-search geospatialsemanticweb-Blog] |
Version vom 2. Mai 2010, 15:06 Uhr
Geohash ist ein (Geo-)Codierungs-Algorithmus für zweidimensionale geografische Koordinaten (latitude/longitude, bzw. Breiten- und Längengrad). Geohash ist nicht zu verwechseln mit 'Geocashing oder Geohashing' (das ein Spiel ist).
Beispiel: Die Koordinaten -25.382708 / -49.265506 werden zum Geohash-Code '6gkzwgjzn820' codiert; -25.383 / -49.266 wird zu '6gkzwgjz'.
Der Geohash-Code hat u.a. folgende Eigenschaften:
- feste, bzw. wählbare Code-Länge
- wählbare Genauigkeit (je nach Länge)
- benachbarte Koordinatenpaare führen zu ähnlichen Codes.
Durch seine Eigenschaften eignet sich der Geohash-Code v.a. als Primärschlüssel aus geografischen Koordinaten sowie als Index und interne Repräsentation für geografische Koordinaten. Es ist zu vermuten, dass sich die Nachbarschaftseigenschaften so ausnutzen lassen, dass daraus eine Struktur entsteht, die teilweise bessere Index-Eigenschaften hat, als der aktuelle Stand-der-Technik mit den R-Bäumen.
Ähnliche Codierungen sind die Morton-Zahl (aus Zahlentheorie) und der Natural Area Code (oder Universal Address). Der Geohash-Code bietet die Möglichkeit, die Genauigkeit schrittweise zu verbessern, je nach Code-Länge.
Geohash wurde von Gustavo Niemeyer erfunden. Der Algorithmus ist seit 26. Februar 2008 Public Domain, dies im Unterschied zu ähnlichen Codes, wie z.B. der patentierte Natural Area Code (NAC). Der Geohash-Autor betreut eine freie Webapplikation namens geohash.org. Laut einem Blog-Eintrag des Autors ([1]) wird der Geohash-Code auch von Google intern verwendet.
Weblinks
- Dokumentation:
- Geohash auf Wikipedia - die 'offizielle' Spezifikation.
- Original-Thread vom Autor G. Niemeyer
- US-Patent - Compact text encoding of latitude/longitude coordinates; United States Patent Application 20050023524
- Applikationen / Webservices:
- Geohash.org - die offizielle Webseite vom Autor G. Niemeyer.
- nearby.org.uk Geocoder
- Source Code:
- Geohash-Java (kungfoo) (empfohlen)
- Geohash Encoder/Decoder in Java from Google Code
- Improved Geohash Gem for Ruby from Dave Troy (aktuell), Javascript
- Blogs/Articles: