geohash.org is public!

After about one year writing this service in my spare time, it’s finally out.

geohash.org offers short URLs which encode a latitude/longitude pair, so that referencing them in emails, forums, and websites is more convenient.

Geohashes offer properties like arbitrary precision, similar prefixes for nearby positions, and the possibility of gradually removing characters from the end of the code to reduce its size (and gradually lose precision). I’ve put the algorithm created in the public domain. Some details may be seen in the Wikipedia article about it (hopefully that’ll help establishing prior art, and prevent Microsoft from patenting it).

To obtain the Geohash, the user provides latitude and longitude coordinates in a single input box (most commonly used formats for latitude and longitude pairs are accepted), and performs the request.

Besides showing the latitude and longitude corresponding to the given Geohash, users who navigate to a Geohash at geohash.org are also presented with an embedded map, and may download a GPX file, or transfer the waypoint directly to certain GPS receivers. Links are also provided to external sites that may provide further details around the specified location.

This entry was posted in Article, GPS, Project, Python. Bookmark the permalink.

8 Responses to geohash.org is public!

  1. Hey Gustavo,

    this is, indeed, a great service, congrats!

    I noticed that you aren’t using the standard Base32 data encoding defined by the RFC3548, but a slightly modified version from it.

    That said, I’m curious to know why did you choose the current mapping… :-)

    As a suggestion, what about use the video-game approach for mapping it:

    http://en.wikipedia.org/wiki/Base32#Video_games

    This certainly will help to avoid generating profane geohashes like, for example:

    http://geohash.org/fuck

    Which, despite being in Greenland, is a valid geohash now… :-)

  2. Roberto says:

    Nice, it’s a really clean and elegant solution!

    A nice addition would be a bookmarklet for Google Maps, which would give the geohash for the central point in the current map. I’ll try to implement one, it should be a fun way to understand the algorithm in detail.

  3. Hey Dorneles,

    There were a few goals in the character set chosen:

    1. No punctuation
    2. Avoiding similar glyphs (e.g. l and 1)
    3. Removing vowels to avoid forming natural words

    The RFC alphabet has all vowels in, which facilitates forming words. The video game approach mentioned includes a punctuation mark, and both 1 and l. I’ve picked a set that would prevent the first two issues entirely, and do some work on the last one, since doing entirely wasn’t possible (and hey, being in greenland is awesome.. it’s surely a good thing to do there).

    Greetings Roberto,

    Coincidently, I already have such a bookmark. I had one before just to look at the coordinates, so it was straightforward. Try to bookmark this link.

  4. Roberto says:

    Hmmm, I was thinking of a bookmarklet that would calculate the geohash, since I didn’t know about the “?q=” parameter.

    Anyway, it’s a really nice service, good job! :)

  5. Leonardo Vaz says:

    A great hack and a pretty nice tool. Congratulations!!

    Leo

  6. Neil McCallum says:

    postcodes for the world :-) I think this is brilliant and I’ve added to my email sig

    Neil
    http://geohash.org/rckq1zm

  7. Pingback: Abundance Affordance

  8. Pingback: Geocaching on the Easter Island « Labix Blog

Leave a Reply

Your email address will not be published. Required fields are marked *