تجسم و مسیریابی شبکه پایه (QGIS3)
ایجاد، تجسم و مدیریت شبکه ها بخش مهمی از GIS است. بسیاری از انواع زیرساختهای فیزیکی مانند جادهها، راهآهنها، خدمات شهری را میتوان به عنوان شبکههایی با خطوط و گرهها – با ویژگیهای متصل به آنها مدلسازی کرد. در این آموزش، نحوه مدلسازی شبکههای جادهای را یاد میگیریم و از برخی تکنیکهای سبک برای تجسم ویژگیهای مسیریابی استفاده میکنیم. ما همچنین از ابزارهای داخلی QGIS3 برای تجزیه و تحلیل شبکه استفاده خواهیم کرد که برای یافتن کوتاهترین مسیر بین ۲ نقطه همراه با شبکه.
نمای کلی کار
ما یک لایه بلوک جاده را برای واشنگتن دی سی می گیریم، اتصال را تجسم می کنیم و یک شبکه برای پیدا کردن کوتاه ترین مسیر بین هر ۲ نقطه در شهر ایجاد می کنیم.
خواهید گرفت
- نحوه استفاده از لغو تعریف شده داده برای تراز کردن نماد فلش بر اساس جهت خط.
دریافت داده ها
دولت ناحیه کلمبیا صدها مجموعه داده را آزادانه در کاتالوگ داده باز به اشتراک می گذارد .
بلوک جاده ای را که توسط داده های DCGISopendata به اشتراک گذاشته شده است را به عنوان یک فایل شکل دانلود کنید .
برای راحتی کار، میتوانید مستقیماً یک نسخه از مجموعه دادهها را از لینکهای زیر دانلود کنید:
منبع داده: [DCOPENDATA]
Roadway_Block-shp.zip
فایل دانلود شده را در پنل مرورگر پیدا کنید . آن را گسترش دهید وRoadway_Block.shp
فایل را به بوم بکشید.
Roadway_Block
یک لایه خط جدید به نام اضافه شده به پنل لایه ها را خواهید دید . این لایه نشان دهنده هر جاده در واشنگتن دی سی است. ابزار Identify را در نوار ابزار Attributes انتخاب کنید . روی هر بخش جاده کلیک کنید تا ببینید چه ویژگی هایی به آن متصل شده است. ویژگی های استاندارد مانند Route-name، Road-type و غیره وجود دارد. یک ویژگی به نام وجود داردSUMMARYDIR
. این یک ویژگی مهم برای مسیریابی است زیرا مشخص می کند که قطعه دو طرفه یا یک طرفه است. این شامل ۴ مقدار مختلف است.BD
(هر دو جهت) برای خیابان های دو طرفه.OB
(خارج از مرز) برای خیابان های یک طرفه که در آن تردد در جهت خط مجاز است (نقطه شروع تا پایان) وIB
(In Bound) برای خیابان های یک طرفه که ترافیک در خلاف جهت خط جریان دارد. . همچنین ارزشی وجود دارد??
که ترافیک دو طرفه را در نظر بگیریم. اکنون از اطلاعات موجود در آن ویژگی برای نمایش یک فلش در خیابان های یک طرفه استفاده می کنیم.
- روی دکمه Open the layer Styling Panel در پنل Layers کلیک کنید .
Rule-based
رندر را از منوی کشویی انتخاب کنید .
- ما یک سبک جدید با فیلتر فقط برای جاده های یک طرفه ایجاد خواهیم کرد. روی دکمه Add rule + کلیک کنید .
- در گفتگوی ویرایش قانون ، روی دکمه Expression کلیک کنید .
- در گفتگوی سازنده رشته Expression ، بخش Fields and Values را در پنل میانی گسترش دهید. ویژگی را انتخاب کنید
SUMMARYDIR
و روی All Unique در پنل سمت راست کلیک کنید. ۴ مقداری که قبلاً در مورد آنها صحبت کردیم ظاهر می شوند. داشتن این مقادیر در اینجا به عنوان یک مرجع به هنگام ساخت عبارت کمک می کند. همچنین، می توانید روی هر مقداری دوبار کلیک کنید تا آنها را به عبارت اضافه کنید.
- هدف ایجاد عبارتی است که تمام خیابان های یک طرفه را انتخاب کند. عبارت زیر را وارد کرده و روی OK کلیک کنید .
"SUMMARYDIR" in ('IB', 'OB')
- سپس نوع لایه Symbol را به .
Marker line
- در زیر نشانگر قرار دادن را انتخاب کنید .
on center point
- روی نماد کلیک کنید. به پایین بروید و نشانگر را انتخاب کنید. خواهید دید که علامت فلش مانند اکنون در خیابان های یک طرفه ظاهر می شود. اما همه آنها به یک جهت اشاره می کنند، در حالی که ما می دانیم که فیلتر ما شامل جاده هایی در چندین جهت است. ما میتوانیم نمادها را با یک لغو تعریفشده از داده برای مقدار Rotation اصلاح کنیم .
Simple marker
filled_arrowhead
- روی دکمه لغو تعریف دادهها در کنار چرخش کلیک کنید .
- می توانیم یک عبارت شرطی قرار دهیم که بسته به جهت یک طرفه، مقادیر چرخش متفاوتی را برمی گرداند. چرخش ۱۸۰ درجه برای جاده با جهت مخالف، جهت را کامل میکند، در این حالت، جادههای با
IB
ویژگی را ۱۸۰ درجه میچرخانیم، بنابراین همه جادهها جهت جریان ترافیک صحیح را خواهند داشت. عبارت زیر را وارد کرده و روی OK کلیک کنید .
if( "SUMMARYDIR" = 'IB', 180, 0)
- اکنون سر پیکان ها را می بینید که در جهت درست جاده تراز شده اند. برای بی نظم نگه داشتن استایل، پیکان ها را فقط در خیابان های یک طرفه نمایش می دهیم. خیابان های بدون برچسب دو طرفه فرض می شوند. اکنون که سبک شبکه را به درستی طراحی کرده ایم، می توانیم تحلیلی انجام دهیم. به بروید .
- جستجو و مکان یابی کنید . برای راه اندازی آن دوبار کلیک کنید.
- در گفتگوی Shortest Path (نقطه به نقطه) ،
Roadway_Block
به عنوان لایه برداری نشان دهنده شبکه را انتخاب کنید . نوع Path را نگه دارید تا به صورت محاسبه شودShortest
. بعد، باید یک نقطه شروع و پایان را انتخاب کنیم. می توانید روی دکمه … کلیک کنید و روی هر نقطه از شبکه در بوم کلیک کنید. اگر می خواهید نتایج را در این آموزش تکرار کنید، می توانید-۷۶٫۹۹۷۳۰۰۹۲۱۶۶۳۹۶,۳۸٫۸۸۷۶۲۴۸۴۶۷۴۸۹۸۴
به عنوان نقطه شروع و-۷۶٫۹۹۱۵۴۸۳۱۰۶۲۱۵۲,۳۸٫۸۹۱۵۱۰۰۰۵۶۹۹۲۹
به عنوان نقطه پایان وارد کنید . بخش پارامترهای پیشرفته را گسترش دهید .SUMMARYDIR
به عنوان قسمت جهت انتخاب کنید . شما باید با مقادیر جهت یک طرفه برای جریان ترافیک رو به جلو و عقب آشنا باشید. مقدارOB
را برای جهت رو به جلو و مقدارIB
را برای جهت عقب وارد کنید . سایر گزینه ها را در مقادیر پیش فرض نگه دارید و روی Run کلیک کنید .
- الگوریتم از هندسه لایه و پارامترهای ارائه شده برای ساخت یک نمودار شبکه استفاده می کند. سپس از این نمودار برای یافتن کوتاه ترین مسیر بین نقطه شروع و پایان استفاده می شود. پس از اتمام الگوریتم، یک لایه جدید به پنل لایه ها اضافه می شود که کوتاه ترین مسیر بین نقطه شروع و پایان را نشان می دهد.
Shortest path
- خواهید دید که مسیرهای ممکن زیادی بین نقطه شروع و پایان وجود دارد. اما با توجه به محدودیت های شبکه – مانند یک طرفه بودن، نتیجه کوتاه ترین مسیر ممکن است. همیشه ایده خوبی است که تحلیل ها و فرضیات خود را تأیید کنید. یکی از راههای آسان برای تأیید اعتبار این است که از یک سرویس نقشهبرداری شخص ثالث استفاده کنید تا ببینید آیا نتایج آنها با نتایجی که ما به دست آوردهایم مطابقت دارد یا خیر. در اینجا کوتاه ترین مسیر پیشنهادی توسط Google Maps بین همان نقطه شروع و پایان است. همانطور که می بینید کوتاه ترین مسیر توصیه شده دقیقاً با نتایج ما مطابقت دارد – تأیید تجزیه و تحلیل ما.
اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)