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)