OpenStreetMap (OSM) ialah peta dunia percuma yang dicipta secara kolaboratif oleh orang di seluruh dunia – percuma, terbuka dan bebas. Walaupun Peta Google, sebagai peneraju pasaran, sering menjadi pilihan pertama untuk peta digital, OSM bergantung pada prinsip yang sama sekali berbeza: komuniti kolaboratif yang mengumpul, menambah baik dan menjadikan data geografi tersedia secara percuma.
Mengapa ini penting? Kerana peta adalah pengetahuan - dan pengetahuan harus percuma. Untuk aplikasi individu, mungkin berguna untuk mengehoskan data OSM sendiri untuk membangunkan penyelesaian peta tersuai dan mengekalkan kawalan ke atas data dan pembentangannya. OSM pengehosan sendiri menawarkan beberapa kelebihan:
- Kemerdekaan: Anda tidak bergantung pada perkhidmatan luaran dan mempunyai kawalan penuh ke atas data kad.
- Kebolehsuaian: Anda boleh menyesuaikan penggayaan peta dan data yang dipaparkan mengikut keperluan anda sendiri.
- Perlindungan Data: Semua data dihoskan secara tempatan. Tiada API luaran dipanggil.
Terdapat dua kaedah utama untuk memaparkan peta:
- Jubin grid: Fail imej pra-dibuat untuk tahap zum yang berbeza. Ia mudah untuk dilaksanakan tetapi menawarkan kurang fleksibiliti dalam menyesuaikan gaya peta.
- Jubin vektor: Mengandungi data geografi dalam bentuk vektor (titik, garis, poligon) yang diberikan kepada klien. Ini membolehkan pelarasan fleksibel reka bentuk peta dan paparan tajam pada semua peringkat zum. Walau bagaimanapun, pemaparan memerlukan lebih banyak kuasa pengkomputeran pada peranti klien.
Jubin vektor amat sesuai untuk pengehosan sendiri kerana ia menawarkan lebih banyak pilihan penyesuaian dan lebih cekap. Untuk peta wilayah dengan kawasan yang lebih kecil, ~1 GB ruang cakera keras selalunya mencukupi. Adalah masuk akal untuk menggunakan SSD kerana ia menawarkan kelebihan kelajuan semasa memuatkan jubin. Jubin vektor statik tidak memerlukan pelayan peta yang sedang berjalan (cth. TileServer GL atau Mapnik), mempunyai keperluan penyelenggaraan yang lebih rendah dan kurang beban pelayan - ia sesuai untuk projek yang lebih kecil dengan bahagian peta tetap.
Pakej kecil saya osmhelper memudahkan proses mencipta dan menggunakan jubin vektor daripada .osm.pbf
Fail. Kotak sempadan tersuai membolehkan pembangun mengekstrak kawasan geografi tertentu dan menjana fail boilerplate yang sepadan yang boleh dimuat naik terus ke pelayan. Ini menjadikan penyepaduan data OSM ke dalam projek web lebih mudah. Untuk menggunakan osmhelper, beberapa penyediaan diperlukan. Perpustakaan adalah berdasarkan alatan seperti osmium, mbutil dan pembuat jubin yang mesti dipasang.
Pemasangan osmium
osmium ialah alat yang berkuasa 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
Pemasangan mbutil
mbutil ialah alat berasaskan 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 pembuat jubin
tilemaker ialah alat sumber terbuka yang menukar data OSM terus kepada jubin 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
Muat turun skrip penukaran
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
Selepas memasang alat yang diperlukan, osmhelper boleh digunakan untuk menjana jubin vektor dan menyediakannya untuk pengehosan:
./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 untuk menyampaikan bahagian peta tersuai dengan cekap dan tanpa memerlukan pelayan peta dinamik. Mengintegrasikan data OpenStreetMap ke dalam projek anda sendiri boleh menjadi rumit, terutamanya apabila ia berkaitan dengan pengehosan dan penggunaan. Memandangkan Peta Google mempunyai monopoli pada penyelesaian pemetaan, banyak pembangun sedang mencari alternatif. osmhelper memudahkan anda mula mengehos data OpenStreetMap anda sendiri. Ini memberi anda kawalan penuh ke atas peta anda, tiada sekatan API dan keupayaan untuk menambah lapisan data anda sendiri.
Kebanyakan orang mengetahui Peta Google sebagai penyelesaian standard untuk peta digital. Tetapi beberapa orang tahu bahawa OpenStreetMap ialah alternatif yang hebat – tanpa sekatan komersial atau kos tersembunyi. Walaupun Peta Google mengenakan bayaran penggunaan API dan mengumpul data pengguna, OSM adalah percuma, terbuka dan disokong oleh komuniti global. OSM ialah Wikipedia dunia peta – sesiapa sahaja boleh menyumbang, menambah jalan, denai kembara atau POI (Tempat Menarik) dan dengan itu menambah baik peta dunia percuma.