OpenStreetMap (OSM) är en gratis världskarta skapad i samarbete av människor över hela världen – gratis, öppen och oberoende. Medan Google Maps, som marknadsledare, ofta är förstahandsvalet för digitala kartor, förlitar sig OSM på en helt annan princip: en samarbetsgemenskap som samlar in, förbättrar och gör geografisk data tillgänglig utan kostnad.
Varför är detta viktigt? För kartor är kunskap – och kunskap ska vara gratis. För enskilda applikationer kan det vara användbart att själv vara värd för OSM-data för att utveckla skräddarsydda kartlösningar och behålla kontrollen över datan och dess presentation. Self-hosting OSM erbjuder flera fördelar:
- Oberoende: Du är inte beroende av externa tjänster och har full kontroll över kortdata.
- Anpassningsförmåga: Du kan anpassa kartstilen och data som visas efter dina egna behov.
- Dataskydd: All data lagras lokalt. Inga externa API:er anropas.
Det finns två huvudsakliga metoder för att visa kartor:
- Rutnät: Färdiga bildfiler för olika zoomnivåer. De är enkla att implementera men erbjuder mindre flexibilitet när det gäller att anpassa kartstilen.
- Vektor plattor: Innehåller geografiska data i form av vektorer (punkter, linjer, polygoner) som renderas på klientsidan. Detta möjliggör flexibla justeringar av kartdesignen och en skarp visning på alla zoomnivåer. Men rendering kräver mer datorkraft på klientenheten.
Vektorplattor är särskilt lämpliga för självhotell eftersom de erbjuder fler anpassningsmöjligheter och är mer effektiva. För regionala kartor med mindre ytor räcker ofta ~1 GB hårddiskutrymme. Det är vettigt att använda SSD eftersom de erbjuder hastighetsfördelar när du laddar brickor. Statiska vektorbrickor kräver inte en körande kartserver (t.ex. TileServer GL eller Mapnik), har lägre underhållskrav och mindre serverbelastning - de är idealiska för mindre projekt med fasta kartsektioner.
Mitt lilla paket osmhelper underlättar processen att skapa och distribuera vektorbrickor från .osm.pbf
Filer. Anpassade begränsningsrutor tillåter utvecklare att extrahera specifika geografiska områden och generera matchande boilerplate-filer som kan laddas upp direkt till en server. Detta gör integrationen av OSM-data i webbprojekt mycket enklare. För att använda osmhelper krävs viss förberedelse. Biblioteket bygger på verktyg som t.ex osmium, mbutil och kakelmakare som måste installeras.
Installation av osmium
osmium är ett kraftfullt verktyg för att bearbeta 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 av mbutil
mbutil är ett Python-baserat verktyg för att arbeta 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
Installation av kakelmakare
tilemaker är ett verktyg med öppen källkod som omvandlar OSM-data direkt till vektorbrickor.
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
Ladda ner konverteringsskriptet
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Använder osmhelper
Efter att ha installerat de nödvändiga verktygen kan osmhelper användas för att generera vektorbrickor och förbereda dem för värd:
./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
Denna process gör det möjligt att leverera skräddarsydda kartsektioner effektivt och utan behov av en dynamisk kartserver. Att integrera OpenStreetMap-data i dina egna projekt kan vara komplext, särskilt när det kommer till värd och driftsättning. Eftersom Google Maps har monopol på kartlösningar letar många utvecklare efter alternativ. osmhelper gör det enklare att komma igång med din egen OpenStreetMap-data. Detta ger dig full kontroll över dina kartor, inga API-begränsningar och möjligheten att lägga till dina egna datalager.
De flesta känner till Google Maps som standardlösningen för digitala kartor. Men få människor vet att OpenStreetMap är ett bra alternativ – utan kommersiella begränsningar eller dolda kostnader. Medan Google Maps tar ut API-användningsavgifter och samlar in användardata, är OSM gratis, öppet och stöds av en global community. OSM är kartvärldens Wikipedia – vem som helst kan bidra, lägga till vägar, vandringsleder eller POIs (Points of Interest) och på så sätt förbättra den kostnadsfria världskartan.