Attempt to create an API to get information about OSM features around a location.
Attempt to create an API to get information about OSM features around a location.
Tested on Linux and WSL. Adapt for other operating systems.
cp .env_template .env
# Optionally change environment variables inside .env
# start services
docker compose up -d
# download sample data
wget -O data/sample.pbf https://download.geofabrik.de/europe/germany/bremen-latest.osm.pbf
# load data into db
docker compose run --rm osm2pgsql \
--slim \
--output=flex \
--style=/data/flex_style.lua \
--prefix=raw \
/data/sample.pbf
# add function to DB
docker compose exec db psql -f /data/query_function.sql
create PostGIS database
load OSM data:
# load data into db
osm2pgsql \
--slim \
--output=flex \
--style=data/flex_style.lua \
--prefix=raw \
data/sample.pbf
Load Function from data/query_function.sql
into database
Install pg_featureserv
(Download link for Linux: https://postgisftw.s3.amazonaws.com/pg_featureserv_latest_linux.zip) and run it via:
export DATABASE_URL=postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}/${PGDATABASE}
export PGFS_WEBSITE_BASEMAPURL="https://tile.openstreetmap.de/{z}/{x}/{y}.png"
./pg_featureserv
Request the API with your browser or any other tool: