OpenStreetMap (OSM), dünyanın dört bir yanındaki insanların işbirliğiyle oluşturduğu özgür, açık ve bağımsız bir dünya haritasıdır. Dijital haritalar için pazar lideri olan Google Haritalar sıklıkla ilk tercih olurken, OSM tamamen farklı bir ilkeye dayanıyor: Coğrafi verileri toplayan, iyileştiren ve ücretsiz olarak kullanıma sunan iş birlikçi bir topluluk.
Bu neden önemli? Çünkü haritalar bilgidir ve bilgi ücretsiz olmalıdır. Bireysel uygulamalar için, özelleştirilmiş harita çözümleri geliştirmek ve veriler ve bunların sunumu üzerinde kontrolü elinizde tutmak amacıyla OSM verilerini kendiniz barındırmanız yararlı olabilir. Kendi kendine barındırılan OSM birçok avantaj sunar:
- Bağımsızlık: Harici servislere bağımlı değilsiniz ve kart verileriniz üzerinde tam kontrole sahipsiniz.
- Uyum sağlama yeteneği: Haritanın stilini ve görüntülenen verileri kendi ihtiyaçlarınıza göre özelleştirebilirsiniz.
- Veri koruması: Tüm veriler yerel olarak barındırılmaktadır. Hiçbir harici API çağrılmaz.
Haritaları görüntülemek için iki ana yöntem vardır:
- Izgara fayansları: Farklı yakınlaştırma seviyeleri için önceden hazırlanmış görüntü dosyaları. Uygulanmaları kolaydır ancak harita stilini özelleştirmede daha az esneklik sunarlar.
- Vektör fayansları: İstemci tarafında işlenen vektörler (noktalar, çizgiler, çokgenler) biçiminde coğrafi verileri içerir. Bu, harita tasarımında esnek ayarlamalar yapılmasına ve tüm yakınlaştırma seviyelerinde keskin bir görüntü elde edilmesine olanak tanır. Ancak, render işlemi istemci cihazında daha fazla işlem gücü gerektirir.
Vektör döşemeleri, daha fazla özelleştirme seçeneği sundukları ve daha verimli oldukları için özellikle kendi kendinize barındırma için uygundur. Daha küçük alanlara sahip bölgesel haritalar için genellikle ~1 GB sabit disk alanı yeterlidir. Fayansları yüklerken hız avantajı sağladığı için SSD kullanmak mantıklıdır. Statik vektör döşemeleri çalışan bir harita sunucusuna (örneğin TileServer GL veya Mapnik) ihtiyaç duymaz, daha düşük bakım gereksinimlerine ve daha az sunucu yüküne sahiptir; sabit harita bölümlerine sahip daha küçük projeler için idealdir.
Benim küçük paketim osm yardımcısı vektör döşemelerinin oluşturulması ve dağıtılması sürecini kolaylaştırır .osm.pbf
Dosyalar. Özel sınırlayıcı kutular, geliştiricilerin belirli coğrafi alanları çıkarmasına ve doğrudan bir sunucuya yüklenebilen eşleşen standart dosyalar oluşturmasına olanak tanır. Bu, OSM verilerinin web projelerine entegrasyonunu çok daha kolay hale getirir. Osmhelper'ı kullanmak için bazı hazırlıklar yapmak gerekiyor. Kütüphane aşağıdaki gibi araçlara dayanmaktadır: osmiyum, mbutil ve fayans ustası Kurulması gereken.
Osmiyumun kurulumu
Osmium, OSM verilerinin işlenmesinde güçlü bir araçtır.
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
Mbutil'in kurulumu
mbutil, MBTiles ile çalışmak için Python tabanlı bir araçtır.
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
Fayansçı montajı
tilemaker, OSM verilerini doğrudan vektör fayanslarına dönüştüren açık kaynaklı bir araçtır.
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
Dönüştürme betiğini indirin
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Osmhelper kullanımı
Gerekli araçlar yüklendikten sonra, osmhelper vektör döşemeleri oluşturmak ve bunları barındırma için hazırlamak için kullanılabilir:
./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
Bu süreç, özelleştirilmiş harita bölümlerinin dinamik bir harita sunucusuna ihtiyaç duyulmadan verimli bir şekilde sunulmasını mümkün kılar. OpenStreetMap verilerini kendi projelerinize entegre etmek, özellikle barındırma ve dağıtım söz konusu olduğunda karmaşık olabilir. Haritalama çözümlerinde Google Haritalar'ın tekel olması nedeniyle birçok geliştirici alternatif arayışına girdi. osmhelper kendi OpenStreetMap verilerinizi barındırmaya başlamanızı kolaylaştırır. Bu, haritalarınız üzerinde tam kontrole sahip olmanızı, API kısıtlamaları olmamasını ve kendi veri katmanlarınızı ekleyebilmenizi sağlar.
Çoğu kişi Google Haritalar'ı dijital haritalar için standart çözüm olarak bilir. Ancak çok az kişi OpenStreetMap'in ticari kısıtlamaları veya gizli maliyetleri olmayan harika bir alternatif olduğunu biliyor. Google Haritalar API kullanım ücreti talep ederken ve kullanıcı verilerini toplarken, OSM ücretsiz, açık ve küresel bir topluluk tarafından destekleniyor. OSM, harita dünyasının Vikipedi'sidir; herkes katkıda bulunabilir, yollar, yürüyüş parkurları veya POI'ler (İlgi Noktaları) ekleyebilir ve böylece özgür dünya haritasını geliştirebilir.