Title: Dopecarpet & Rugreefer
Date: 2025-03-05 23:00
Category: software
Slug: dopecarpet
Summary: Geospatial metadata API to package OpenStreetMap data into geohash-based tiles and a Dart library to efficiently fetch, parse, and cache that spatial information.
Working for [Randonautica]({filename}../blog/randonautica.md) I had the idea to develop an API to allow requesting geographic information about coordinates, like whether they are in or near water, within a nature reserve, residential area, or in a forest, or any other geocoded metadata.
Based on publicly available OpenStreetMap data I develpped [Dopecarpet](https://codeberg.org/randogoth/dopecarpet), a toolset to generate 4 digit GeoHash tile sized Parquet/GeoJSON/CBOR files from OSM PBF files. It comes with a custom tag filter and a minimal GET API to download the data in different formats.
To retrieve data from the API I also built the Dart library [Rugreefer](https://codeberg.org/randogoth/rugreefer). It converts coordinates into a geohash, fetches a gzipped GeoJSON file from the API, and extracts relevant spatial data such as polygons and lines. The library also supports caching with optional expiration to improve performance.
## Repositories
* [Dopecarpet](https://codeberg.org/randogoth/dopecarpet)
* [Rugreefer](https://codeberg.org/randogoth/rugreefer)