Retrohash search tool
With this webpage, you can search retrohashes
(geohashes and globalhashes of past dates)
matching specified location and date criteria.
Data are available since 1928-10-01.
The old version of the tool is located at old.html.
All of its functionality can be reproduced with the current tool.
How to use
First, select which hashpoints you want to search.
The default option of all is usually the useful one,
but you can also search only geohashes or globalhashes.
The location criteria are:
- In graticule: hashpoints must be in this graticule lat,lon.
If the text field is active, Ctrl+clicking on the map assigns the graticule under the mouse cursor.
- In range: hashpoints must be in a rectangle defined by opposite corners lat1,lon1 and lat2,lon2 (inclusive).
Ctrl+clicking assigns a graticule as above.
- Latitude: hashpoints must have a smaller or greater latitude than the given value.
Ctrl+clicking assigns the latitude of the mouse cursor.
- Longitude: hashpoints must have a smaller or greater longitude than the given value.
There is no wraparound after +180° or before −180°.
Ctrl+clicking assigns the longitude of the mouse cursor.
- In circle: hashpoints must be within a specified distance from the given point lat,lon.
Depending on the active field, Ctrl+clicking assigns either the centre point or the distance.
- In polygon: hashpoints must be inside a polygon defined by a list of points lat1,lon1 lat2,lon2 lat3,lon3 etc.
Calculations are done in the equirectangular coordinate system, so most polygon edges are not actually straight,
but this is an acceptable approximation when the polygon is small.
Ctrl+clicking adds a new point to the list. All other editing must be done manually.
The date criteria are:
- Date: the date string (format YYYY-MM-DD) must match the comparison to the given value.
Dates increase over time, so later dates are considered greater than earlier dates.
- Special date: Same as “Date”, but you need to pick a date from the predefined list.
Possible choices are:
- The first day of geohashing (2008-05-21)
- The first day of the Dark Ages (2019-08-31)
- The day when the Dark Ages ended (2020-02-02)
- Special day: The month and day of the date must match the comparison
to the date specified by the selection with an offset added to it.
Possible choices are:
- Easter Sunday: depending on the year, varies between 22 March and 25 April (inclusive).
To get other days that depend on Easter, use an appropriate offset.
For instance, Palm Sunday is with an offset of −7, and Ascension Thursday is with an offset of 39.
- Geohashing
Day: always 21 May.
- Mouse Over
Day: the first Saturday since Geohashing Day (including Geohashing Day itself),
varies between 21 May and 27 May depending on the year.
- Year: the year of the date must match the comparison to the given value.
- Month: the month of the date must match the comparison to the given value.
- Day: the day of the date must match the comparison to the given value.
Negative values count from the end of the month
(−1 is the last day of the month, −2 is the second to last, etc.).
- Weekday in range: The weekday of the date must be in the inclusive range specified.
The range can wrap around the weekend (e.g. from Friday to Monday).
- Nth of month: the weekday of the date must be the Nth instance
of the specified weekday in the month.
Negative values count from the end of the month as above.
The criteria can be combined with logical operators:
- AND: all criteria inside the group must be matched (conjunction).
- OR: at least one criterion inside the group must be matched (disjunction).
- NAND: some, but not all, criteria inside the group may be unmatched (non-conjunction).
- NOR: no criteria inside the group may be matched (non-disjunction).
- To negate (NOT) a criterion, simply put it as the only one in a NAND or NOR group
(I was too lazy to implement this as its own special case).
Finally, how to order the found hashpoints and how many to display at most. The ordering options are:
- Newest / Oldest: Points with latest or earliest dates. Fast to search.
- Northernmost / southernmost: Points with the highest or lowest latitudes.
- Westernmost / easternmost: Points with the lowest or highest longitudes.
There is no wraparound after +180° or before −180°.
- Closest to point: Points closest to the given point (Ctrl+click on the map to place).
Distances are shown in the chosen units. Can be slow to search.
Once all the settings and criteria have been defined, click “Search”.
As long as the calculation has not finished, the app asks every ten seconds if you want it to continue.
The interval can be increased to one or five minutes or disabled altogether (not recommended).
Hashpoints matching all criteria are shown on the map and listed in a table.
The map markers of regular geohashes are in green and globalhashes in blue.
Points with a reported expedition to them are in a lighter colour.
If the expedition was unsuccessful (Category: Coordinates not reached) instead of successful (Category: Coordinates reached),
the marker’s outline is dashed instead of solid.
In the table, successful expeditions are highlighted in blue and unsuccessful ones in red.
Notes and tips
- The circle area criterion and sorting by distance may be glitchy if large search areas are used.
They have not yet been tested thoroughly, but small circles away from the poles seem to work well.
- Circles and polygons that cross the ±180° meridian are handled correctly,
but matching points may be drawn outside the shapes on the map.
- Be careful to not specify a too large search space because it might take a large amount of time to calculate.
The search algorithm is clever enough reduce the search space in many cases,
but difficult searches can still take long.
The prompting feature allows aborting the search if it does not finish in a reasonable time.
Example case 1
Try the following criteria and settings:
- Find points: Geohashes and Globalhashes
- Location criteria: In circle, within 20 kilometres of 50.1,14.5
- Date criteria: Full date ≤ 2025-03-31
- Display up to: 20 newest
You will get a list of hashpoints around Prague, Czech Republic,
including three successful expeditions and one unsuccessful expedition.
Example case 2
Try the following criteria and settings:
- Find points: Geohashes and Globalhashes
- Location criteria: AND group, inside:
- In graticule 68,29
- In polygon 68.19630,28.64613 68.07454,29.32709 67.80296,29.65942 67.80296,28.64613
- Date criteria: OR group, inside:
- Display up to: 1000 newest
You will get a list of all hashpoints that were in the Finnish corner of this graticule
on either the first or the last day of the month. You can see how the points are in the small area
where the two quadrilaterals coincide.
Example case 3
Try the following criteria and settings:
- Find points: Geohashes and Globalhashes
- Location criteria: ... (everything)
- Date criteria: ... (everything)
- Display up to: 100 closest to point 48.87378,2.29504
with distance shown in kilometres (or whichever you prefer)
After several seconds, you will get the one hundred hashpoints closest ever to the Arc de Triomphe in Paris.
The search is slow because the search space is the whole world and all dates since 1928-10-01,
and it would be horribly slow if the app did not reduce the search space during the search.
Limiting the search to the graticule 48,2 makes it significantly faster and yields the same result.