Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
58 - Telegram Web
Telegram Web
سلام
بیایید ریلیشن پرکاربرد مالتی پلیگان رو بهتر بشناسیم 🙂
میتونم بگم که این ریلیشن آسونترین و در عین حال پُر کاربردترین ریلیشن در OSM هست.
اما اجازه بدین قبل از مالتی پلیگان، خود پلیگان رو توضیح بدم تا بیشتر با مفهوم مالتی پلیگان آشنا بشیم.
ترجمه کلمه‌ی #پلیگان (#polygon) "چند ضلعی" هست و به معنی هر محیط بسته‌ای هست که با یکسری خط محدود شده است. (ما چند ضلعی باز نداریم)
و اما #مالتی_پلیگان (#multipolygon)
اگه به معنی کلمه‌ی مشابه مولتی ویتامین دقت کنین معنی مالتی پلیگان رو کاملاً درک خواهید کرد. مولتی ویتامین، که همه‌ی ما باهاش آشنا هستیم، به معنی ترکیب ویتامین‌ها و کنار هم قرارگیری اونا هست، مالتی پلیگان هم دقیقاً به همین معنا یعنی به معنی ترکیب پلیگان‌ها و کنار هم قرارگیری پلیگان‌ها هست.
وقتی چند پلیگان کنار هم قرار میگیرن (به شکلی که دارای مرز مشترک باشن) و یا داخل هم قرار میگیرن (به شکلی که مرزها با هم تماسی ندارن) از این ریلیشن استفاده میشه. طبق یک قاعده‌ی کُلی هر عارضه‌ای که با پلیگان قابل رسم باشه با مالتی پلیگان هم قابل رسمه. ولی موارد بسیار زیادی داریم که با پلیگان قابل رسم نیستن و برای رسمشون حتماً باید از مالتی پلیگان استفاده کرد.
تا اینجای بحث ما مفهوم مالتی پلیگان رو فهمیدیم، حالا میریم سراغ بحث شیرین ریلیشن 😉 که ترجمه‌ی کلمه‌ش میشه "رابطه". #ریلیشن (#relation) در OSM در واقع یک قرارداد و تعریفه که نوع ارتباط بین چند عضو، و نقش هر عضو در این رابطه رو مشخص میکنه، و یک چیز فیزیکی نیست که قابل رویت باشه و مشکل اکثر ادیتورها با همین غیر قابل رویت و غیر ملموس بودنشه. اما نتیجه‌ی یک ریلیشن قابل رویته. یعنی مثلاً وقتی ما یک ساختمان که وسطش یک محوطه و فضای خالی وجود داره (مثلاً حیاط خونه‌های قدیمی که در وسطشون قرار داره) رو با ریلیشن مالتی پلیگان رسم میکنیم نتیجه‌ی کار قابل رویت هست. امیدوارم مفهوم ریلیشن رو متوجه شده باشین. 😊
حالا میریم سراغ #ریلیشن_مالتی_پلیگان که ما میتونیم اونو در #josm مستقيماً از سربرگ presets و بعد relations انتخاب و ایجاد کنیم. بعد از کلیک روی new relation و ایجاد ریلیشن یک صفحه باز میشه که دو قسمت کُلی داره،
قسمت بالا (Tags) مربوط به تگهای خود ریلیشن میشه که میتونیم ببینیم که تگ type=multipolygon بصورت پیش فرض از قبل به ریلیشن داده شده، سایر تگهای مربوط به عارضه‌ای که داریم با این ریلیشن رسمش میکنیم هم در همین قسمت باید وارد بشن. (مثلاً اگه یه ساختمونه باید تگ building=yes و سایر تگهای مربوطه در این قسمت وارد بشن)
قسمت پایین (Members) مربوط به اعضا و نقش هر عضو در ریلیشن میشه، اگر شما قبل از ایجاد ریلیشن عضوها رو انتخاب کرده باشین در این قسمت نشون داده میشن و تنها کاری که باید بکنین مشخص کردن نقششون در ریلیشنه، اگر عضوها رو انتخاب نکردین چیزی در این قسمت نیست و خالیه، اما جای نگرانی نیست شما میتونین همین الآن عضوها رو انتخاب کنین. با انتخاب عضوها اونا در قسمت selection (پایین سمت راست) دیده میشن. با زدن اولین فلش در این قسمت عضوهای انتخابی وارد ستون سمت چپ میشن و سپس شما میتونین نقش عضوها رو براشون مشخص کنین...
کُل نقش‌های (role) موجود در این ریلیشن دو تا هستن، نقش outer و inner، یعنی هر عضو در این ریلیشن یا نقش outer داره یا inner، که البته نقش inner میتونه وجود نداشته باشه. مرزهای خارجی عارضه نقش outer میگیرن و مرزهای داخلی عارضه نقش inner. مثلاً در رسم یک خونه‌ی قدیمی که قبلاً به عنوان مثال ذکر شد مرز خارجی کُل خونه نقش outer میگیره و مرز داخلی که مربوط به حیاط هست نقش inner میگیره. به زبان دیگه میشه اینجوری گفت که عارضه‌ی ما داخل پلیگانی قرار میگیره که ضلع‌هاش نقش outer دارن و خارج پلیگانی قرار میگره که ضلع‌هاش نقش inner دارن.
در مورد رسم عوارضی که در مجاورت هم قرار دارن و مرز مشترک دارن و لزوماً از یک جنس نیستن هم از این ریلیشن استفاده میشه.
بعنوان مثال یک پارکینگ و محوطه‌ی یک تالار عروسی رو در نظر بگیرین که با یک دیوار از هم جدا شدن، دیوار مرز مشترک این دو عارضه هست، دیوار رو با یک خط رسم میکنیم و تگ barrier=wall رو بهش میدیم و بعد دو عارضه پارکینگ و تالار رو با دو ریلیشن مالتی پلیگان جداگانه رسم میکنیم و این دیوار در هر دو ریلیشن (بصورت جداگانه) نقش outer رو خواهد داشت.
در مواردی یک عضو میتونه در یک ریلیشن نقش outer و در ریلیشن دیگه‌ای نقش inner رو داشته باشه، مثلاً در مثال قبل فرض کنید یک ساختمان نگهبانی در وسط پارکینگ وجود داشته باشه، مرز این ساختمان در ریلیشن مربوط به پارکینگ نقش inner و در ریلیشن مربوط به خود ساختمان نقش outer رو خواهد داشت.
شبتون بخیر 😊🌸

@OpenStreetMapIr
تمامی پروژه های موجود در مپرولت در انجمن osm ایران بخش ابزار های osm و زیربخش Map Roulette به همراه مختصری توضیحات مستند شدند. توجه داشته باشید که موضوع هایی که نماد قفل دارند فعلا به اتمام رسیده اند اما ممکن است در اینده مجددا فعال شوند. اگر پروژه ای مربوط به ایران در این سایت وجود دارد در همین بخش با ایجاد یک پست جدید ان را ثبت کنید.
https://forum.osmiran.ir/c/osm-tools/maproulette
با سلام خدمت تمامی ویرایشگران نقشه OSM در ایران
از همه‌ی دوستانی که علاقمند هستند تا مشارکت بیشتری در پروژه OSM Iran داشته باشند دعوت به همکاری به عنوان نویسنده در وب‌سایت و کانال گروه می‌کنیم.
تمامی عزیزانی که با پیمان نحوه‌ی برخورد با مشارکت‌کننده و مدیران موافقت کنند و با ایجاد یک پست در انجمن ویرایشگران OSM ایران بخش گروه های کاری آن را کتباً به اطلاع تمام اعضا برسانند می‌توانند یکی از نویسندگان وبسایت یا کانال OSM Iran باشند
با تشکر OSM Iran
1
فرض کنید میخواهید سه آپارتمان را با ریلیشن رسم کنید.
برای اینکار فقط به line نیاز هست. نه Area و نه Point.
2
با Line دور محیط هر آپارتمان رو خط بکشید.
نکته مهم اینه که این خطوط، هرجا که به نقطه مشترک با محیط دیگر مواجه بشه، قطع میشه..
3
بنابراین ما ۶ خط لازم داریم که نهایتا ۳ محیط را بوجود می‌آورد.
فعلا این خطوط هیچ تگی ندارند.
4
فرقی نداره که اول کدام خط رو انتخاب کنیم. ولی برای اشتباه نشدن و تکرار نکردن انتخاب قبلی، بهتره که یک رویه رو در ذهن داشته باشیم. مثلا همیشه از سمت راست یا همیشه از پایین انتخاب کنید.
طبق تصویر، یک خط کناری رو انتخاب کردیم و تگ Line رو بهش میدیم.
یعنی این یک خط هست که قراره یک ریلیشن یا همون رابطه بهش اختصاص بدیم.
5
در سمت چپ، روی علامت مثبت + در relation میزنیم.
6
حالا ریلیشنی که مناسب چند محیط چسبیده به هم هست رو انتخاب میکنیم.
یعنی multipoligon.
این نوع ریلیشن پرکاربردترین ریلیشن هست.
یادتون باشه توی تصویر، محل قرار گرفتن این تگ بعلت استفاده قبلی، بالای بقیه هست. ولی در سیستم شما ممکنه پایین باشه.
7
همونطور که میبینید، تگ type:multipoligon اضافه شده.


هر سه ساختمان، آپارتمان هستند. بنابراین، تگ building رو انتخاب میکنیم و جلوی اون، apartment رو پیدا و انتخاب میکنیم.👇
8
این اسکرین‌شات‌ها رو از گوشی گرفتم. اگر کلمات کامل دیده نمیشند ببخشید.
9
در قسمت line, مشخص میکنیم که این خط قسمت بیرونی یا داخلی این آپارتمان است. بنابراین outer رو انتخاب میکنیم.
10
خط شماره ۲ رو انتخاب میکنیم و میخواهیم اون رو به بقیه آپارتمان نسبت (ریلیشن) بدیم.
11
در قسمت relation میبینیم که زیر new relation , یک Apartments بوجود آمده.
پس برای اتصال دادن خط دوم به خط اول، Apartment رو انتخاب میکنیم.
12
برای این خط هم مشخص میکنیم که قسمت بیرونی هست یا درونی.
13
بعد از مشخص شدن ریلیشن آپارتمان اول، به سراغ ساختمان دوم میرویم.
باز هم فرقی نمیکند که کدامیک از چهار ضلع آنرا به عنوان اولین خط درنظر بگیریم. ما اینجا خط بالایی رو انتخاب میکنیم.
ریلیشن بعدی رو میسازیم.
لازمه که بدونید فقط کافیه به اولین ضلع، خصوصیتهای اون بنا رو "مثل آپارتمان" داد و کافیه که خطهای بعد، فقط به خط اول ریلیشن داده میشند.

به خط سوم مثل خط اول، تگ
line
و
Building : Apartments
میزنیم.
14
برای ساختمان آپارتمان دوم، New relation رو انتخاب میکنیم.
و نه Apartment.
15
مجدداً تگ multipoligon رو انتخاب میکنیم.
16
و مثل قبل، تگ
building:Aparent
رو میزنیم.
17
خط بعدی از ساختمان دوم رو هم مثل قبل به آپارتمان دوم نسبت میدیم و لازم نیست ریلیشن جدیدی ایجاد شود.
2025/10/11 12:15:03
Back to Top
HTML Embed Code: