خودتان OpenStreetMap را میزبانی کنید

OpenStreetMap (OSM) یک نقشه جهان آزاد است که به طور مشترک توسط افراد در سراسر جهان ایجاد شده است - آزاد، باز و مستقل. در حالی که نقشه های گوگل، به عنوان رهبر بازار، اغلب اولین انتخاب برای نقشه های دیجیتال است، OSM بر یک اصل کاملا متفاوت متکی است: جامعه ای مشترک که داده های جغرافیایی را به صورت رایگان جمع آوری، بهبود می بخشد و در دسترس قرار می دهد.


چرا این مهم است؟ زیرا نقشه ها دانش هستند – و دانش باید رایگان باشد. برای برنامه‌های کاربردی، میزبانی داده‌های OSM برای توسعه راه‌حل‌های نقشه سفارشی‌شده و حفظ کنترل بر داده‌ها و ارائه آن، ممکن است مفید باشد. OSM خود میزبانی چندین مزیت را ارائه می دهد:

  • استقلال: شما به خدمات خارجی وابسته نیستید و کنترل کاملی روی داده های کارت دارید.
  • سازگاری: شما می توانید سبک نقشه و داده های نمایش داده شده را بر اساس نیازهای خود سفارشی کنید.
  • حفاظت اطلاعات: همه داده ها به صورت محلی میزبانی می شوند. هیچ API خارجی فراخوانی نمی شود.

دو روش اصلی برای نمایش نقشه ها وجود دارد:

  • کاشی های شبکه ای: فایل های تصویری از پیش ساخته شده برای سطوح مختلف زوم. پیاده سازی آنها آسان است اما انعطاف کمتری در سفارشی کردن سبک نقشه ارائه می دهد.
  • کاشی های برداری: حاوی داده های جغرافیایی به شکل بردارهایی (نقاط، خطوط، چندضلعی) است که در سمت کلاینت رندر می شوند. این اجازه می دهد تا تنظیمات انعطاف پذیر طراحی نقشه و نمایش واضح در تمام سطوح زوم را انجام دهد. با این حال، رندر به قدرت محاسباتی بیشتری در دستگاه مشتری نیاز دارد.

کاشی های برداری مخصوصاً برای خود میزبانی مناسب هستند زیرا گزینه های سفارشی سازی بیشتری را ارائه می دهند و کارآمدتر هستند. برای نقشه های منطقه ای با مناطق کوچکتر، ~ 1 گیگابایت فضای هارد دیسک اغلب کافی است. استفاده از SSD ها منطقی است زیرا در هنگام بارگذاری کاشی ها مزایای سرعت را ارائه می دهند. کاشی‌های بردار استاتیک به سرور نقشه در حال اجرا (مانند TileServer GL یا Mapnik) نیاز ندارند، نیازمند نگهداری کمتر و بار سرور کمتری هستند - آنها برای پروژه‌های کوچکتر با بخش‌های نقشه ثابت ایده‌آل هستند.

بسته کوچک من osmhelper فرآیند ایجاد و استقرار کاشی های برداری را تسهیل می کند .osm.pbfفایل ها جعبه‌های مرزبندی سفارشی به توسعه‌دهندگان اجازه می‌دهند مناطق جغرافیایی خاصی را استخراج کرده و فایل‌های دیگ بخاری منطبق را تولید کنند که می‌توانند مستقیماً در سرور آپلود شوند. این امر ادغام داده های OSM در پروژه های وب را بسیار آسان تر می کند. برای استفاده از osmhelper، آماده سازی لازم است. کتابخانه بر اساس ابزارهایی مانند اوسمیوم, بوتیل و کاشی ساز که باید نصب شود

نصب اوسمیوم

osmium یک ابزار قدرتمند برای پردازش داده های 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

نصب و راه اندازی mbutil

mbutil یک ابزار مبتنی بر پایتون برای کار با 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

نصب کاشی ساز

tilemaker یک ابزار متن باز است که داده های OSM را مستقیماً به کاشی های برداری تبدیل می کند.

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

اسکریپت تبدیل را دانلود کنید

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

استفاده از osmhelper

پس از نصب ابزارهای مورد نیاز، می توان از osmhelper برای تولید کاشی های وکتور و آماده سازی آنها برای میزبانی استفاده کرد.:

./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

این فرآیند امکان ارائه بخش های نقشه سفارشی شده را به صورت کارآمد و بدون نیاز به سرور نقشه پویا فراهم می کند. ادغام داده‌های OpenStreetMap در پروژه‌های خود می‌تواند پیچیده باشد، به‌ویژه وقتی نوبت به میزبانی و استقرار می‌رسد. از آنجایی که Google Maps انحصار راه حل های نقشه برداری را دارد، بسیاری از توسعه دهندگان به دنبال جایگزین هایی هستند. osmhelper شروع به میزبانی داده های OpenStreetMap خود را آسان تر می کند. این به شما کنترل کامل بر روی نقشه های خود، بدون محدودیت API و توانایی اضافه کردن لایه های داده خود را می دهد.

اکثر مردم نقشه های گوگل را به عنوان راه حل استاندارد برای نقشه های دیجیتال می شناسند. اما تعداد کمی از مردم می دانند که OpenStreetMap یک جایگزین عالی است – بدون محدودیت تجاری یا هزینه های پنهان. در حالی که Google Maps هزینه استفاده از API را دریافت می کند و داده های کاربر را جمع آوری می کند، OSM رایگان، باز و توسط یک جامعه جهانی پشتیبانی می شود. OSM ویکی‌پدیای جهان نقشه است – هر کسی می‌تواند مشارکت کند، جاده‌ها، مسیرهای پیاده‌روی یا POI (نقاط مورد علاقه) را اضافه کند و در نتیجه نقشه جهان آزاد را بهبود بخشد.

بازگشت