Vær selv vært for OpenStreetMap

OpenStreetMap (OSM) er et gratis verdenskort skabt i samarbejde af mennesker over hele verden - gratis, åbent og uafhængigt. Mens Google Maps som markedsleder ofte er førstevalget for digitale kort, er OSM afhængig af et helt andet princip: et samarbejdsfællesskab, der indsamler, forbedrer og gør geografiske data gratis tilgængelige.


Hvorfor er dette vigtigt? Fordi kort er viden – og viden bør være gratis. For individuelle applikationer kan det være nyttigt selv at hoste OSM-data for at udvikle skræddersyede kortløsninger og bevare kontrollen over dataene og deres præsentation. Self-hosting OSM giver flere fordele:

  • Uafhængighed: Du er ikke afhængig af eksterne tjenester og har fuld kontrol over kortdataene.
  • Tilpasningsevne: Du kan tilpasse kortets stil og de viste data efter dine egne behov.
  • Data beskyttelse: Alle data hostes lokalt. Ingen eksterne API'er kaldes.

Der er to hovedmetoder til visning af kort:

  • Gitterfliser: Præfabrikerede billedfiler til forskellige zoomniveauer. De er nemme at implementere, men tilbyder mindre fleksibilitet i tilpasningen af kortstilen.
  • Vektor fliser: Indeholder geografiske data i form af vektorer (punkter, linjer, polygoner), der gengives på klientsiden. Dette giver mulighed for fleksible justeringer af kortdesignet og en skarp visning på alle zoomniveauer. Gengivelse kræver dog mere computerkraft på klientenheden.

Vektorfliser er særligt velegnede til selvhosting, da de tilbyder flere tilpasningsmuligheder og er mere effektive. For regionale kort med mindre områder er ~1 GB harddiskplads ofte tilstrækkeligt. Det giver mening at bruge SSD'er, fordi de giver hastighedsfordele ved indlæsning af fliser. Statiske vektorfliser kræver ikke en kørende kortserver (f.eks. TileServer GL eller Mapnik), har lavere vedligeholdelseskrav og mindre serverbelastning - de er ideelle til mindre projekter med faste kortudsnit.

Min lille pakke osmhjælper letter processen med at skabe og implementere vektorfliser fra .osm.pbfFiler. Brugerdefinerede afgrænsningsbokse giver udviklere mulighed for at udtrække specifikke geografiske områder og generere matchende boilerplate-filer, der kan uploades direkte til en server. Dette gør integrationen af OSM-data i webprojekter meget nemmere. For at bruge osmhelper er noget forberedelse nødvendigt. Biblioteket er baseret på værktøjer som f.eks osmium, mbutil og flisemager der skal installeres.

Installation af osmium

osmium er et kraftfuldt værktøj til behandling af OSM-data.

mkdir osmium
cd osmium
wget https://github.com/osmcode/osmium-tool/archive/refs/tags/v1.16.0.tar.gz
tar -xzf v1.16.0.tar.gz
cd osmium-tool-1.16.0
apt-get install libosmium2-dev libprotozero-dev nlohmann-json3-dev libboost-program-options-dev libbz2-dev zlib1g-dev liblz4-dev libexpat1-dev cmake pandoc
mkdir build
cd build
cmake ..
make
make install
cd ..
cd ..
rm -rf ./osmium
exec env -i HOME=$HOME bash -l
osmium --version

Installation af mbutil

mbutil er et Python-baseret værktøj til at arbejde med MBTiles.

git clone https://github.com/mapbox/mbutil.git
cd mbutil
python setup.py install
cd ..
rm -rf ./mbutil
exec env -i HOME=$HOME bash -l
mb-util --version

Montering af flisemager

tilemaker er et open source-værktøj, der konverterer OSM-data direkte til vektorfliser.

apt install build-essential libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev lua5.1 liblua5.1-0-dev libshp-dev libsqlite3-dev rapidjson-dev
git clone https://github.com/systemed/tilemaker.git
cd tilemaker
make
make install
cd ..
rm -rf ./tilemaker
exec env -i HOME=$HOME bash -l
tilemaker --help

Download konverteringsscriptet

mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh

Bruger osmhelper

Efter installation af de nødvendige værktøjer kan osmhelper bruges til at generere vektorfliser og forberede dem til hosting:

./convert.sh \
    --url https://download.geofabrik.de/europe/germany-latest.osm.pbf \
    --lat-min 47.27 \
    --lon-min 8.97 \
    --lat-max 50.57 \
    --lon-max 13.84 \
    --compress

Denne proces gør det muligt at levere tilpassede kortudsnit effektivt og uden behov for en dynamisk kortserver. Det kan være komplekst at integrere OpenStreetMap-data i dine egne projekter, især når det kommer til hosting og implementering. Da Google Maps har monopol på kortløsninger, leder mange udviklere efter alternativer. osmhelper gør det nemmere at komme i gang med at hoste dine egne OpenStreetMap-data. Dette giver dig fuld kontrol over dine kort, ingen API-begrænsninger og muligheden for at tilføje dine egne datalag.

De fleste kender Google Maps som standardløsningen til digitale kort. Men de færreste ved, at OpenStreetMap er et godt alternativ – uden kommercielle begrænsninger eller skjulte omkostninger. Mens Google Maps opkræver API-brugsgebyrer og indsamler brugerdata, er OSM gratis, åbent og understøttet af et globalt fællesskab. OSM er kortverdenens Wikipedia - alle kan bidrage, tilføje veje, vandrestier eller POI'er (Points of Interest) og dermed forbedre det gratis verdenskort.

Tilbage