Routing API با Valhalla

Summarize this content to 400 words in Persian Lang
چند وقت پیش، من نیاز به پیاده سازی ابزاری برای ایجاد مسیرهای جاده ای بین 2 نقطه مورد علاقه داشتم.در ابتدا، من در مورد Google Maps API فکر کردم، اما این یک سرویس پولی است و بنابراین به دنبال جایگزین های منبع باز که نیاز را برآورده می کند، گشتم و آن زمان بود که Valhalla را کشف کردم.
Valhalla یک موتور مسیریابی منبع باز است.
تولید مسیر به چند روش:
خودکار؛
عابر پیاده؛
کامیون؛
و غیره؛
ایجاد مسیرهایی با اجتناب از مسیرهای خاص.
استفاده مستقیم در QGIS با استفاده از یک افزونه.
در LeafletJS برای رابط نقشه تعاملی استفاده کنید.
یک نسخه آزمایشی از API در صفحه DEMO قابل مشاهده است
اسناد کامل API را می توان در Documentation مشاهده کرد
در زیر نمونه ای از docker-compose برای پیاده سازی سریع سرور آورده شده است.به یاد داشته باشید که در اولین اجرا، این فرآیند کاملاً زمان بر است زیرا نقشه بزرگراه را دانلود می کند و داده ها را آماده می کند تا سپس API کاربردی شود.
version: ‘3’
services:
valhalla:
image: ghcr.io/gis-ops/docker-valhalla/valhalla:3.4.0
environment:
– tile_urls=https://download.geofabrik.de/south-america/brazil-latest.osm.pbf
– use_tiles_ignore_pbf=True
– force_rebuild=False
– force_rebuild_elevation=False
ports:
– 8002:8002
volumes:
– /opt/valhalla/custom_files/:/custom_files
restart: always
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در زیر نمونه ای از ساختار تماس با پارامترهایی که من استفاده می کنم آورده شده است.
$queryParams = [‘json’ => json_encode([
‘locations’ => [
[‘lat’ => $lat_a, ‘lon’ => $long_a],
[‘lat’ => $lat_b, ‘lon’ => $long_b]
],
‘costing’ => ‘pedestrian’,
‘narrative’ => false,
‘id’ => ‘my_second_route’,
//’avoid_locations’ => $shapeToIgnore,//para rotas alternativas
‘directions_options’ => [
‘units’ => ‘meters’,
‘language’ => ‘pt-BR’
],
])];
$response = Http::get(‘http://1.2.3.4:8002/route’, $queryParams);
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
چند وقت پیش، من نیاز به پیاده سازی ابزاری برای ایجاد مسیرهای جاده ای بین 2 نقطه مورد علاقه داشتم.
در ابتدا، من در مورد Google Maps API فکر کردم، اما این یک سرویس پولی است و بنابراین به دنبال جایگزین های منبع باز که نیاز را برآورده می کند، گشتم و آن زمان بود که Valhalla را کشف کردم.
Valhalla یک موتور مسیریابی منبع باز است.
- تولید مسیر به چند روش:
- خودکار؛
- عابر پیاده؛
- کامیون؛
- و غیره؛
- ایجاد مسیرهایی با اجتناب از مسیرهای خاص.
- استفاده مستقیم در QGIS با استفاده از یک افزونه.
- در LeafletJS برای رابط نقشه تعاملی استفاده کنید.
یک نسخه آزمایشی از API در صفحه DEMO قابل مشاهده است
اسناد کامل API را می توان در Documentation مشاهده کرد
در زیر نمونه ای از docker-compose برای پیاده سازی سریع سرور آورده شده است.
به یاد داشته باشید که در اولین اجرا، این فرآیند کاملاً زمان بر است زیرا نقشه بزرگراه را دانلود می کند و داده ها را آماده می کند تا سپس API کاربردی شود.
version: '3'
services:
valhalla:
image: ghcr.io/gis-ops/docker-valhalla/valhalla:3.4.0
environment:
- tile_urls=https://download.geofabrik.de/south-america/brazil-latest.osm.pbf
- use_tiles_ignore_pbf=True
- force_rebuild=False
- force_rebuild_elevation=False
ports:
- 8002:8002
volumes:
- /opt/valhalla/custom_files/:/custom_files
restart: always
در زیر نمونه ای از ساختار تماس با پارامترهایی که من استفاده می کنم آورده شده است.
$queryParams = ['json' => json_encode([
'locations' => [
['lat' => $lat_a, 'lon' => $long_a],
['lat' => $lat_b, 'lon' => $long_b]
],
'costing' => 'pedestrian',
'narrative' => false,
'id' => 'my_second_route',
//'avoid_locations' => $shapeToIgnore,//para rotas alternativas
'directions_options' => [
'units' => 'meters',
'language' => 'pt-BR'
],
])];
$response = Http::get('http://1.2.3.4:8002/route', $queryParams);