OpenStreetMap (OSM) adalah peta dunia gratis yang dibuat secara kolaboratif oleh orang-orang di seluruh dunia – gratis, terbuka, dan independen. Sementara Google Maps, sebagai pemimpin pasar, sering kali menjadi pilihan pertama untuk peta digital, OSM bergantung pada prinsip yang sama sekali berbeda: komunitas kolaboratif yang mengumpulkan, meningkatkan, dan menyediakan data geografis secara gratis.
Mengapa ini penting? Karena peta adalah pengetahuan – dan pengetahuan seharusnya gratis. Untuk aplikasi individual, mungkin berguna untuk menghosting sendiri data OSM guna mengembangkan solusi peta yang disesuaikan dan mempertahankan kontrol atas data dan penyajiannya. OSM yang dihosting sendiri menawarkan beberapa keuntungan:
- Kemerdekaan: Anda tidak bergantung pada layanan eksternal dan memiliki kendali penuh atas data kartu.
- Kemampuan beradaptasi: Anda dapat menyesuaikan gaya peta dan data yang ditampilkan sesuai kebutuhan Anda sendiri.
- Perlindungan data: Semua data dihosting secara lokal. Tidak ada API eksternal yang dipanggil.
Ada dua metode utama untuk menampilkan peta:
- Ubin kotak-kotak: Berkas gambar yang telah dibuat sebelumnya untuk berbagai tingkat zoom. Mudah diimplementasikan tetapi kurang fleksibel dalam menyesuaikan gaya peta.
- Ubin vektor: Berisi data geografis dalam bentuk vektor (titik, garis, poligon) yang ditampilkan di sisi klien. Hal ini memungkinkan penyesuaian desain peta yang fleksibel dan tampilan yang tajam di semua tingkat zoom. Namun, rendering membutuhkan daya komputasi yang lebih besar pada perangkat klien.
Ubin vektor sangat cocok untuk hosting mandiri karena menawarkan lebih banyak opsi penyesuaian dan lebih efisien. Untuk peta regional dengan wilayah yang lebih kecil, ruang hard disk ~1 GB seringkali cukup. Masuk akal untuk menggunakan SSD karena menawarkan keunggulan kecepatan saat memuat ubin. Ubin vektor statis tidak memerlukan server peta yang berjalan (misalnya TileServer GL atau Mapnik), memiliki persyaratan pemeliharaan yang lebih rendah dan beban server yang lebih sedikit - ubin ini ideal untuk proyek yang lebih kecil dengan bagian peta tetap.
Paket kecilku pembantu osm memfasilitasi proses pembuatan dan penyebaran ubin vektor dari .osm.pbf
Berkas. Kotak pembatas khusus memungkinkan pengembang untuk mengekstrak area geografis tertentu dan menghasilkan file boilerplate yang cocok yang dapat diunggah langsung ke server. Hal ini membuat integrasi data OSM ke dalam proyek web menjadi jauh lebih mudah. Untuk menggunakan osmhelper, beberapa persiapan diperlukan. Perpustakaan ini didasarkan pada alat-alat seperti besi, mbutil dan tukang ubin yang harus diinstal.
Pemasangan osmium
osmium adalah alat yang ampuh untuk memproses data OSM.
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
Instalasi mbutil
mbutil adalah alat berbasis Python untuk bekerja dengan 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
Pemasangan tilemaker
tilemaker adalah alat sumber terbuka yang mengubah data OSM langsung menjadi ubin vektor.
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
Unduh skrip konversi
mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh
Menggunakan osmhelper
Setelah menginstal alat yang diperlukan, osmhelper dapat digunakan untuk menghasilkan ubin vektor dan mempersiapkannya untuk 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
Proses ini memungkinkan penyampaian bagian peta yang disesuaikan secara efisien dan tanpa memerlukan server peta dinamis. Mengintegrasikan data OpenStreetMap ke dalam proyek Anda sendiri dapat menjadi rumit, terutama dalam hal hosting dan penerapan. Karena Google Maps memonopoli solusi pemetaan, banyak pengembang mencari alternatif. osmhelper memudahkan Anda memulai hosting data OpenStreetMap Anda sendiri. Ini memberi Anda kendali penuh atas peta Anda, tidak ada batasan API dan kemampuan untuk menambahkan lapisan data Anda sendiri.
Kebanyakan orang mengenal Google Maps sebagai solusi standar untuk peta digital. Tetapi hanya sedikit orang yang tahu bahwa OpenStreetMap adalah alternatif yang hebat – tanpa batasan komersial atau biaya tersembunyi. Sementara Google Maps mengenakan biaya penggunaan API dan mengumpulkan data pengguna, OSM gratis, terbuka, dan didukung oleh komunitas global. OSM adalah Wikipedia peta dunia – siapa pun dapat berkontribusi, menambahkan jalan, jalur pendakian, atau POI (Tempat Menarik) dan dengan demikian menyempurnakan peta dunia yang bebas.