[HN Gopher] Hyper-optimized reverse geocoding API
___________________________________________________________________
Hyper-optimized reverse geocoding API
Author : tananaev
Score : 58 points
Date : 2026-03-19 14:38 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| tananaev wrote:
| Self-hosted reverse geocoder with sub-millisecond query latency.
| C++ builder parses OSM PBF files into a compact binary index
| using S2 geometry cells. Rust server memory-maps the index and
| serves a Nominatim-compatible API. Docker support with automatic
| HTTPS.
| gniv wrote:
| How long does it take to build the whole index?
| KomoD wrote:
| I tried the "Australia and Oceania" pbf which is really small
| and it took ~15min
| tananaev wrote:
| It took about 8-10 hours for me on a 192GB Hetzner cloud
| machine. The resulting index was just 18GB, so once the index
| is created it's really efficient and you can easily run it on
| a small VM.
| majorchord wrote:
| I just want a regular (non-reverse) geocoding system that's
| actually easy to self-host.
|
| Windows CE apps were doing this 20 years ago with single file
| databases of only a few GBs, why do I need a 500GB+ postgres
| monster to do the same thing today?
| felixguendling wrote:
| Have you tried MOTIS with only the geocoding enabled? This
| should be 1-2 orders of magnitude smaller.
| macrolet wrote:
| Great. But look at the query feature of OSM. Try it. At higher
| zoom levels like 15, querying for features at the same
| coordinates as your example reveals nearby features. Like hotel
| buildings, post offices, recycling points, etc. The nominatin
| format is not enough. What is more, an extended feature set could
| be used together with an LLM. I am very interested in that, so,
| feel free to reach out to me if you want to discuss more.
| supriyo-biswas wrote:
| I don't get the point in writing another geocoder when such
| programs already exist, e.g: https://pelias.io/
| ranger_danger wrote:
| I don't get the point in making other types of food when pizza
| already exists.
| tananaev wrote:
| Most or all existing solutions are universal (not just reverse
| geocoding) and rely on database. The purpose of this project is
| to make it super fast to do one thing. The result is 100x -
| 1000x speed of Pelias and other universal tools like that.
| KomoD wrote:
| > docker run -e PBF_URLS="https://download.geofabrik.de/planet-
| latest.osm.pbf"
|
| Geofabrik doesn't offer a "planet" pbf.
| tananaev wrote:
| Good catch, thanks. Updated the readme. The planet can be
| downloaded directly from OSM.
___________________________________________________________________
(page generated 2026-03-19 23:01 UTC)