ریلیشن building

نویسنده @kiaraSh_Q

مطمئناً پیش اومده که خواسته باشین کاربری هر طبقه از یک ساختمون چند طبقه رو مشخص کنین… اما چجوری؟! در ادامه به شما خواهیم گفت…

فرض کنین یک ساختمون ۲ طبقه داریم که یک زیرزمین هم داره و ارتفاع هر طبقه‌ش ۳ متره، و زیرزمین سرویس بهداشتی، طبقه اول سوپرمارکت و طبقه دومش مسکونی هست…

ابتدا سطح مقطع اون ساختمون رو میکشیم و بعد برای هر طبقه یه ریلیشن مالتی پلیگون (type=multipolygon) جداگانه می‌سازیم (یعنی سه تا ریلیشن) و تگهای زیر رو بهشون میدیم

زیرزمین

building=toilets
building:part=yes
level=-1
amenity=toilets

طبقه اول

building=supermarket
building:part=yes
level=0
height=3
shop=supermarket

طبقه دوم

building=house
building:part=yes
level=1
height=6
min_height=3

در هر سه ریلیشن مرز ساختمون نقش outer خواهد داشت. (یک آبجکت، در بی نهایت ریلیشن میتونه عضو باشه)

حالا اگه ساختمون شما n طبقه هم داشته باشه کافیه که همین کار رو برای هر طبقش انجام بدین…

در نهایت میشه کُل این ریلیشن‌ها (child relation) رو در یک ریلیشن type=building جمع کرد و به هر کدومشون نقش part داد (role=part). تگهایی که مربوط به کُل ساختمان میشن رو باید به ریلیشن مادر (parent relation) داد…

تگهای مربوط به کُل ساختمان

building=yes 
building:levels:2
building:levels:underground=1
height=6

مشخصات دیگه ای از جمله رنگ و شکل سقف و… رو میشه با تگهای مربوطه‌شون مشخص کرد.

با توجه به اینکه تعداد زیادی از سایت‌ها و اَپلیکیشن‌ها #3D رو ساپورت نمیکنن و محیطشون #2D هست ما یک نقش دیگه هم در ریلیشن بیلدینگمون نیاز داریم، تا در این موارد ساختمان دو بعدی و فقط دید از بالاش نمایش داده بشه… و خطوط اضافی دیگه‌ی ساختمان که در نمایش 2D الزامی ندارن نمایش داده نشن. اسم این نقشمون #outline هست و همونطور که از اسمش پیداست به مرز خارجی کُل ساختمون گفته میشه.

در مثال خیلی ساده‌ی بالا (چون شکل ساختمان ساده‌ترین شکل ممکن هست) ما فقط یه مرز داریم که برای کُل ریلیشن‌ها از جمله ریلیشن مربوط به outline استفاده میشه. برای این منظور (نقش outline) در مثال بالا (و موارد مشابه دیگه) ما یک ریلیشن مالتی پلیگون دیگه، با تگهای برابر با ریلیشن مادر، یعنی همون ریلیشن building اصلی، به اضافه تگ building:part=no ایجاد میکنیم که نهایتاً این ریلیشن، در ریلیشن building ما نقش outline خواهد گرفت. برای ریلیشن بیلدینگ میتونین لینکهای زیر رو یه نگاه بندازین…

مجتمع مسکونی امام محمد باقر

مجتمع مسکونی هواپیمایی ماهان

برای اشکال پیچیده‌تر هم میتونین برج میلاد و برج آزادی رو ببینین…

برقرار باشید و خدا نگهدار 😊🌸