Implementations/Broken
Miscellaneous geohashing utilities that are known not to work any longer
Contents
- 1 Geco
- 2 Hackish Bitcoin-based Python Implementation
- 3 Former geohash location suggester
- 4 Active Geohasher
- 5 Peeron
- 6 GeoRSS feed
- 7 Atom feed
- 8 relet's JSON Web Service
- 9 Phyzome's Text Messaging (email) service
- 10 Crox's Text Messaging service (SMS)
- 11 Phyzome's Email autoresponder
- 12 Geohashing for the iPhone
- 13 Geohash for the iPhone
- 14 Geohashing for Windows Phone 8
- 15 macHasher
- 16 YO
- 17 Automatic GPX File Generator
- 18 GeohashGenerator for Popfly
- 19 Geohash module for phenny IRC bot (currently offline)
- 20 geohashing-gpx.heroku.com
Geco
This implementation IS FULLY 30W-compliant. |
A re-implementation of the calculator above using leaflet/cloudmade and the JSON web service below. By using geo.crox as a data source, it is hopefully more reliable than the official map. It also shows the global hash on the map, which you may only notice when it comes into range anyway.
Parameters:
- lat - latitude of the initial graticule
- lon - longitude of the initial graticule
- zoom - initial zoom level
- date - initial date in YYYY-MM-DD format
e.g: http://relet.net/geco/?date=2005-05-26&lat=37&lon=-122&zoom=8
Hackish Bitcoin-based Python Implementation
This implementation IS NOT 30W-compliant. |
Implementation is broken, as far as I can see: The json service queried does not provide the "open" symbol queried. I believe MtGox does not have an opening at all.
MarkTraceur made this to test what Geohashing would look like using a different financial source. It's based on the opening price of Bitcoins in USD at Mt. Gox. You can change the site you use, the coordinates, or just about anything pretty easily. It will get nicer-looking as time goes on.
It is here: https://github.com/MarkTraceur/geohash-btc
Feel free to fork it and/or send feedback through GitHub!
- Michi did some improvements and bug fixing on Marks original script:
- Since bitcoincharts removed the "open" field in their data, the script uses the price at midnight for the calculation.
- Support for the Globalhash.
- 30W compliant.
- Support for other markets than Mt.Gox.
- More map services.
- The code is in his fork. Unfortunately Mark does not respond to Pull Requests, so it looks like the fork won't get merged back.
Former geohash location suggester
No longer available as of 2012.
This implementation IS PARTIALLY 30W-compliant. not compatible for dates before 2008-05-27 |
Geohash Recommender - This website doesn't seem to work as of 12-Jun-09
Yet another implementation in Python is here as well. It does the same as the ones above but also gives "validation" information. Lets you know if the geohash location is under water and thus if its a valid place to go party. Using this it attempts to suggest the "best" alternative geohash by checking all neighbouring grid locations. I'll add more terrain recognition if people like it. The code is over here Source Code
Bugs
- There are a few, it needs a few refreshes to get the whole tagging right. It also has trouble guessing the terrain type occasionally. Refreshing it makes it work but its a problem im looking into, have a look at the code and help if you can :)
- Gives me a false location for May 28 and 29, 2008, which aren't yet known anywhere in the world according to the algorithm. --Tim P 21:29, 24 May 2008 (UTC)
- But... thos dates aren't real yet. There is no dow result. Granted it should give an error instead of giving _something_ but...
- As of 05:06, 26 May 2008 (UTC), this gives locations for May 27-30 west of 30W and for May 28-31 east of 30W, i.e., four days beyond what should be calculable as of that time. Beyond those dates, it gives a proper error message stating that no Dow is available. I think temporary data were added to the implementation for testing purposes; these should be removed. --Tim P
- One could interpret the algorithm such that, for any date in the future, one is to use "the opening price from [DOW's] previous day of active trading is used", i.e., the most recent trading day. Obviously, this would lead to the location changing as the day approaches but, in a random spontaneous adventure generator, that seems almost mathematically pure. I mean, that's just what happens when you try to generate spontaneity too far into the future, yes? ;) Ted 00:19, 30 May 2008 (UTC)
- But... thos dates aren't real yet. There is no dow result. Granted it should give an error instead of giving _something_ but...
- Electronicwar website seems to be no longer functioning. Jiml 00:29, 13 June 2009 (UTC)
Active Geohasher
This implementation IS FULLY 30W-compliant. |
Active Geohasher was a web application by Sermoa which provided resources for geohashers in UK, US, and 'pirate' English, and Esperanto. The site provided graticule integration with social media sites. A KML feed was provided per graticule. Every geohash had a page showing various maps, useful links and a PDF poster which could be downloaded and printed to take to the geohash. At first it used to be able to send email reminders, but resource limits later prevented it from doing so. One could use a browser to view a page containing the address, distance from a home location, and useful links. It also told users the globalhash.
Active Geohasher is open source (written in Ruby on Rails). There was also a Twitter account that delivered news and direct message geohashing notifications: @activegeohasher (a role currently taken up by @geohashing)
As of May 2013, the website has been down ("Offline for Maintenance") for several months. As of 2021, it only displays a 404 error page. As of late 2021 or early 2022, the domain has expired.
Peeron
This implementation IS FULLY 30W-compliant. |
The original interactive coordinate calculator was found at http://carabiner.peeron.com/xkcd/map. Here are some notes on Using the Coordinate Calculator. The common URL, http://xkcd.com/geohashing, redirects here.
Any problems or issues should be mentioned to Zigdon either on the wiki or in the Geohashing IRC channel, as well as posted at Talk:Implementations.
The source code is available here: https://github.com/zigdon/geohashing.
As of 2022, this implementation is broken.
GeoRSS feed
This implementation IS NOT 30W-compliant. |
You can subscribe to a feed (in GeoRSS format) that will give you updates on a daily basis[citation needed]. Updates include the "best guess" address of the location as well as the specific latitude/longitude coordinates.
http://atlas.freshlogicstudios.com/Features/Experiments/Xkcd/Xkcd.ashx?Latitude=38&Longitude=-91
For example, here's the GeoRSS geohash for St. Louis.
This GeoRSS feed is used to power the Atlas geohash implementation.
Atom feed
This implementation IS FULLY 30W-compliant. |
You can subscribe to a feed that will give you updates on a daily basis:
http://staticfree.info/geohash/atom/LAT,LON
For example, here's the Atom Geohash for Boston.
Just put your coordinates in, subscribe and you'll be ready to go!
Source is available from subversion: https://staticfree.info/svn/ghfeed/
- Bugs
- I noticed yesterday that before the stock exchange data becomes available, the atom feed creates a kind of 'intemediary' geohash using todays date and yesterday's data. This might be intentional, but personally I find that undesirable on weekdays. Could it be modified to show yesterday's date and geohash until data is available? Nicktaylor 14:04, 23 May 2008 (UTC)
- It's definitely broken. -- Phyzome 11:37, 28 May 2008 (UTC)
- This implementation was written before the 30W rule. As it turns out, the intermediate hash falls back on the previous Dow while using the current date from 00:00 (local) to 09:30 ET, which happens to be the desired 30W behavior. However, this is not helpful west of 30W. An inverse problem occurs after 09:30 USET east of 30W, until 24:00 local. See detailed discussion at Talk:Implementations#Atom feed 30W-compliance. --Tim P 15:45, 29 May 2008 (UTC)
- It's definitely broken. -- Phyzome 11:37, 28 May 2008 (UTC)
relet's JSON Web Service
This implementation IS FULLY 30W-compliant. |
A geohashing JSON web service is available at: http://relet.net/geo
Additional data may always be present in the replies. This service may be extended in the future.
- Get geohash for location and date / Get graticule statistics
http://relet.net/geo/[lat]/[lon]/[YYYY-mm-dd] (example)
http://relet.net/geo/[lat]/[lon] (example)
Returns a geohash for the given latitude, longitude and date. If you omit the date, you will only receive the graticule data.
The output will contain the following values in a dictionary:
- error - if an error occurred retrieving the data - example: "DJIA for 2011-12-24 not available yet."
- exception - if an error occurred parsing the input or calculating the output - example: "time data '2011-13-24' does not match format '%Y-%m-%d'"
or:
- djia - DJIA as retrieved from geo.crox
- lat - latitude of the geohash
- lon - longitude of the geohash
- global-lat - latitude of the globalhash
- global-lon - longitude of the globalhash
and some information about the graticule:
- graticule - name of the graticule (may be null)
- attempt - number of geohashes attempted
- success - number of successful geohashes
- last - last successful geohash (may be null)
- 30d - geohashes in the last 30 days
- 300d - geohashes in the last 300 days
- hashers - an estimate on how many hashers have tried to reach geohashes in this graticule
- Get geohash history for a graticule
http://relet.net/geo/list/[lat]/[lon] (example)
Returns a list of past expeditions for this graticule. Each list item contains the values:
- lat - latitude of the geohash
- lon - longitude of the geohash
- djia - relevant DJIA
- reached - whether the coordinates were reached
- title - the title of the expedition page on http://geohashing.org
- Get geohash history for a user
http://relet.net/geo/follow/User (example)
Requires proper capitalization as in wiki user names Returns a list of past expeditions for this users. Each list item contains the values:
- lat - latitude of the geohash
- lon - longitude of the geohash
- djia - relevant DJIA
- title - the title of the expedition page on http://geohashing.org
- reached - whether the coordinates were reached
- Get participants of an expedition
http://relet.net/geo/participants/lat/lon/date (example)
Returns a list of recognized user names who are presumed to have participated in this expedition. (Fuzzy logic, it's an educated guess)
- Get complete list of all graticules
http://relet.net/geo/grats
Returns a dictionary of all named graticules. Please store this locally, the transfer size is considerable. For occasional queries after a graticule name, use one of the other APIs. Updated occasionally.
- Get complete geohashing statistics
http://relet.net/geo/stats
Returns a dictionary with graticule statistics. Updated daily. The data is unlabeled, to save a bit on space. Each dictionary entry is a list with the following entries, in this order.
- total expeditions
- coordinates reached
- 30 day expedition count
- 300 day expedition count
- last expedition date
- number of geohashers having participated in expeditions in this graticule (estimate from parsing reports)
- Join the #geohashing IRC channel with a random geonick
http://relet.net/geo/randomnick
Generates a HTTP 302 Redirect to mibbit. Just a gimmick for the front page.
Phyzome's Text Messaging (email) service
This implementation IS FULLY 30W-compliant. |
If your cell phone supports text messaging to an email address, you can get geohash updates on your phone by sending a formatted text to srv@geohash.info (broken indefinitely)
- Formatting
YYYY-MM-DD Lat Lon Example:
2008-02-18 42 -83
Alternatively, it defaults to the current date (EST for now) and you can just enter Latitude and Longitude
42 -83
- Bugs
- The -0 Issue is still very much an issue.
- This used to display the degree symbol after coordinate elements, but due to poor cell phone support of this character, which resulted in messages cutting off after the first Latitude, I have removed it.
- This is also not a terribly robust solution, but a better (stronger, faster) implementation is in the making.
- Not necessarily a bug, but a desirable feature: it would be nice to be able to omit the '-' character when specifying the date (it just happens to require many keystrokes to type - on my phone)
Crox's Text Messaging service (SMS)
This implementation IS FULLY 30W-compliant. |
Update 2018-01-03 - currently the SMS service is not working (modem has to be replaced). Working on a fix. Watch this space for updates.
Text "GH [date]" to +41774378210, eg:
gh 20091110
A few seconds later you should get an sms response similar to the following:
Relevant DJIA for 2009-11-10 is 10223.01(W) / 10020.62(E). Decimal parts are: 0.02335 0.228005(W) / 0.854495 0.149983(E).
Occasionally you may see a result of <n/a> when information is unavailable. For example, if you are looking at a date where coordinates are only available east of w30, you may see something like:
Relevant DJIA for 2009-11-10 is <n/a>(W) / 10020.62(E). Decimal parts are: <n/a>(W) / 0.854495 0.149983(E).
Not case-sensitive, so "Gh", "gh" etc. are all fine. Don't forget the space between "gh" and the date. The script is also flexible on the date format as long as it's in the Y-m-d order.
The service uses the DJIA source that I maintain.
I recommend testing it once before you are away from home and really need it. Also, don't hesitate to tell me if you don't get an sms back or if you feel that something else is not working properly...
See also SMS DJIA service; suggestions, comments and other feedback to User:Crox.
Phyzome's Email autoresponder
This implementation IS FULLY 30W-compliant. |
Email or text srv@geohash.info with something like 2008-3-25 42 -71
in the body to get geohash coordinates. Send "usage" to get this same info in the field. (broken indefinitely)
- Source code: https://github.com/timmc/hashflash
- Maintainer: Phyzome
Geohashing for the iPhone
This implementation IS FULLY 30W-compliant. |
I leave you my application for iPhone. You can download it for free following this link (app is no longer available).
Please take a look and give your thoughts on my talk page.
Features
- Local and Global geohashing calculation
- Integrated map
- Reverse geocoding if available
- Links to the most popular geohashing sites
- Uses Relet Web Service
- Sharing options:
- Message (SMS & iMessage if available)
- Twitter (iOS 5 or superior)
- Offers map the route (local or global if it possible) on iOS Map's application
- Offers map some dinner/food places or parks to visit on iOS Map's application
- Automatic refresh when the day changes
Geohash for the iPhone
This implementation IS PARTIALLY 30W-compliant. |
Geohash for the iPhone is available here in the app store (for free) (no longer works in iOS 11+). The app is partially 30W compliant. It produces the correct coordinates, but doesn't allow you to select tomorrow's date (during the week) or Monday (from Friday afternoon onward). -- Contact: casey@kckd.org
Geohashing for Windows Phone 8
This implementation IS FULLY 30W-compliant. |
Geohashing for Windows Phone (link) is a free and open source geohashing app. Notable features:
- Pin locations to the start screen to immediately see where and how far away today's geohash is (updates automatically)
- Full support of past and future geohashes, as long as the DJIA is available
- Can show you the nearest geohash instead of the one for your current graticule
- Send geohash location to the Maps app for navigation instructions
Usage: When opening the app, your location is detected and the according geohash loaded. To change the location for which you want to see the geohash, tap and hold anywhere on the map. Everything else should hopefully be clear.
macHasher
This implementation IS FULLY 30W-compliant. |
Scottkuma worked feverishly to:
- learn Apple OSX Programming and...
- put together a geohash calculator for the Mac.
- Installation
It's a normal mac application - drag it to your Applications folder, OR just run it from inside the DMG. I think I compiled it as a Universal Binary. If you can't run it on a particular system and/or version of OSX, please let me know.
- Usage
Start by entering your graticule's Lat/Long numbers. The given numbers are for Cincinnati, Ohio.
For today's graticule, just click "Generate!" For dates in the past (or the near-future, for Saturday & Sunday graticules), select the date on the calendar, then click "Generate!"
- Known bugs
- Requires a valid network connection; locks pretty good when one doesn't exist.
- does not calculate east of -30 correctly for dates prior to 5/27/2008
- window doesn't lock its size like I thought it would...
- Planned enhancements
- will allow for saving of a known "home" location
- will calculate distance & bearing to a known location
- will calculate same for adjacent graticules to find a closer geohash
YO
The current geohash location can be attained via the mobile app YO by sending a location YO (or @YO) to YOGEOHASH.
Automatic GPX File Generator
This implementation IS NOT 30W-compliant. |
I have modified the sample perl implementation so that it automatically generates a .gpx file which you can upload to your favourite GPS device/software. Download here Before you use the script, you need to modify it and put your own lat/lon values into the corresponding variables at the beginning. -- Wansti
GeohashGenerator for Popfly
This implementation IS FULLY 30W-compliant. |
I have created a Popfly block to use for creating mashups at http://www.popfly.com/users/rbuckton/GeohashGenerator. Can be integrated with Virtual Earth, etc. --rbuckton
Geohash module for phenny IRC bot (currently offline)
Provides geohashing related lookups and helpful functions for the #geohashing IRC channel. Documentation at: Relet/Shmulik
geohashing-gpx.heroku.com
This implementation IS FULLY 30W-compliant. |
Alech built a web service to get the hash point for a given graticule and day (or for all currently known upcoming ones) in GPX format for use with QLandkarte GT and his Garmin eTrex Legend HCX. It also supports surrounding graticules and has a neat little hack to look up neighbouring (bus, tram, train) stops (this has nothing to do with GPX, OTOH). Check out its documentation, Git repository or information how to use it with QLandkarte GT and let me know any feature requests/bug reports. The hash point data comes from relet's JSON web service, BTW. --Alech 15:07, 18 March 2012 (EDT)