Fa:Elements
عنصرها یا Elementها اجزای اصلی در مدلسازی مفهومی جهان واقعی با دادههای OSM است. این عناصر عبارتاند از
- گرهها (نقاطی در فضا)؛
- راهها (عارضههای خطی و مرز محوطهها)؛
- رابطهها (برای اینکه گاهی نشان دهیم عنصرهای دیگر چگونه با هم کار میکنند).
همهٔ موارد بالا میتوانند یک تگ یا گردایهای از تگها داشته باشند (تگ یا برچسب، آن عنصر را توصیف میکند).
گره
- مقالهٔ اصلی: Fa:Node
هر گره نقطهای را در سطح کرهٔ زمین با طول و عرض جغرافیایی مشخص میکند. هر گره حداقل یک شناسهٔ عددی و یک زوج مختصات دارد.
از گرهها برای تعریف عوارض نقطهای استفاده میکنیم. مثلاً نیمکت پارک یا چاه آب.
همچنین از گرهها برای تعریف شکل راه استفاده میکنیم. هنگامی که گرهها برای ساخت یک راه بهکار میروند معمولاً تگی نمیگیرند، البته بعضیهایشان تگ میگیرند. مثلاً تگ highway=traffic_signals برای مشخصکردن چراغ راهنمایی بر روی جاده است و تگ power=tower برای مشخصکردن دکل خطوط برق است.
هر گره میتواند عضوی از یک رابطه باشد. رابطه به عضوها نقش میدهد، یعنی مثلاً یک گره در رابطهای که با سایر عناصر دارد چه کاری انجام میدهد.
راه
- مقالهٔ اصلی: Fa:Way
هر راه دنبالهای مرتب از ۲ تا ۲۰۰۰ گره است که یک چندخطی بهوجود میآورد. از راهها برای نشاندادن عوارض خطی مانند رودخانهها و جادهها استفاده میکنیم.
راهها همچنین برای مشخصکردن مرز محوطهها (چندضلعیهای توپر) به کار میروند مانند ساختمانها یا جنگلها. در این حالت گره آغازین و گره پایانی یکی هستند که به آن «راه بسته» میگوییم.
توجه کنید که راههای بسته گاهی برای نشاندادن دورها بهکار میروند، مانند میدانها در خیابانها و نه محوطههای توپر. برای تشخیص این حالتها باید تگهای راه را بررسی کنیم.
محوطههای سوراخ یا حفرهدار یا محوطههایی که مرز تشکیلدهندهٔ آن بیش از ۲۰۰۰ گره دارد را نمیتوانیم با یک راه تکی نشان دهیم. در عوض باید از یک ساختار دادهٔ ترکیبی به نام رابطهٔ multipolygon استفاده کنیم.
رابطه
- مقالهٔ اصلی: Fa:Relation
رابطه یک ساختار دادهٔ چندمنظوره است که رابطهای بین عناصر دادگانی (گرهها، راهها و/یا سایر رابطهها) برقرار میکند. چند مثال از رابطه:
- رابطهٔ route یا مسیر که فهرستی از راههای تشکیلدهندهٔ یک معبر اصلی (شمارهدار)، مسیر دوچرخهسواری یا مسیر اتوبوس را در خود نگه میدارد.
- محدودیت دورزدن که بیان میکند نمیتوانید از راهی به راه دیگری دور بزنید.
- رابطهٔ multipolygon یا چندچندضلعی که یک محوطهٔ دارای حفره را مشخص میکند. مرز بیرونی محوطه «outer way» یا راه بیرونی نامیده میشود و حفرهها «inner ways» یا راههای داخلی نامیده میشوند.
بنابراین، رابطهها معانی مختلفی دارند. معنای رابطه با تگهایی که میگیرد مشخص میشود. معمولاً رابطه یک تگ type=* دارد که نوع و معنی رابطه را تعیین میکند. سایر تگهای رابطه را باید بر اساس تگ type مشخص کنیم.
رابطه در درجهٔ اول فهرست مرتبی از گرهها، راهها و/یا سایر رابطههاست. این اشیا عضوهای رابطه نامیده میشوند.
هر عنصر در رابطه یک نقش اختیاری دارد. مثلاً در یک رابطهٔ turn restriction (محدودیت دورزدن) عضوهای «from» و «to» وجود دارد (از و به) که معلوم میکنند دورزدن از کجا به کجا ممنوع است.
یک عنصر، مثلاً یک راه خاص، میتواند چند بار در یک رابطه ظاهر شود.
تگ
- مقالهٔ اصلی: Fa:Tags
همهٔ عناصر دادگانی (گرهها، راهها و رابطهها) و نیز Changesetها تگ یا برچسب میگیرند. تگی که به یک عنصر میدهیم مشخص میکند که منظور ما از آن عنصر چیست.
هر تگ دو خانه یا فیلد متنی دارد: «کلید» و «مقدار». هر کدام از اینها تا ۲۵۵ نویسهٔ یونیکد را قبول میکنند. مثلاً با دادن تگ highway=residential به یک راه، اعلام میکنیم که کاربری اصلی این جاده فراهمکردن دسترسی به خانهٔ افراد است. یک عنصر نمیتواند دو تگ با «کلید» یکسان داشته باشد؛ «کلید» باید یکتا باشد. مثلاً نمیتوانید به یک عنصر همزمان تگهای amenity=restaurant و amenity=cafe بدهید.
واژهنامهٔ ثابتی از تگها وجود ندارد، اما مستندات قراردادی بسیاری در این ویکی آمده است (که از صفحهٔ عوارض نقشه شروع میشود). میزان کاربرد تگها را با استفاده از وبسایت Taginfo بسنجید. اگر برای تگگذاری یک عارضهٔ فرضی، بیش از یک راه وجود داشت، احتمالاً بهترین کار این باشد که از شیوهٔ رایجتر استفاده کنیم.
هر عنصری تگ نمیگیرد. معمولاً گرههایی که یک راه را میسازند تگ ندارند. گرهها و راههایی که عضو یک رابطه هستند میتوانند بیتگ باشند.
مشخصات مشترک
در پایگاهدادهٔ OSM از این مشخصهها برای گرهها، راهها و رابطهها استفاده میکنیم. نرمافزار شما شاید به همهٔ آنها نیاز پیدا نکند و همچنین برخی از گزیندادههایی که از دادههای OSM استخراج میشود شاید همهٔ آنها را در بر نداشته باشند.
نام | مقدار | شرح |
---|---|---|
id | عدد صحیح (۶۴ بیتی) | برای شناسایی عنصر بهکار میرود. هر یک از انواع عناصر فضای شناسهٔ مخصوص به خود را دارد، بنابراین میتوانیم یک گره با شناسهٔ id=100 و یک راه با شناسهٔ id=100 داشته باشیم که شاید بسیار هم به هم مربوط باشند یا از نظر جغرافیایی کنار هم باشند. برای همهٔ عنصرهای موجود از مقدارهای مثبت (>۰) استفاده میشود (و با ویرایش یا حذف عنصر همچنان به همان عنصر اختصاص دارد)؛ مقدارهای منفی رزرو شدهاند (گسترهٔ کارکرد آنها به changeset جاری محدود میشود و هرگز در پایگاهداده ذخیره نمیشوند) و فقط هنگام بارگذاری دادهها در پایگاهدادهٔ OSM بهمنظور شناسایی اشیای نوساخته و ارجاع به آنها در سایر اشیای ساخته یا ویرایششده بهکار میروند (سرور این شناسههای موقت ارسالی از طرف نرمافزار ویرایشگر را با شناسههای مثبت واقعی جایگزین میکند و به هر شی اختصاص میدهد و سپس نگاشتی از شناسههای منفی استفادهشده را به شناسههای مثبت اختصاصیافتهٔ متناظر برمیگرداند). |
user | رشتهای از نویسهها | نام نمایشی کاربری که آخرین بار یک شیء را ویرایش کرده است (فقط برای آگاهی است و میتواند خالی باشد). کاربر میتواند نام نمایشیاش را هر زمان که بخواهد عوض کند (عناصر موجود نیز بدون آنکه به تغییری نیاز باشد نام کاربری جدید را نمایش خواهند داد). |
uid | عدد صحیح | شناسهٔ عددی کاربری که آخرین بار یک شیء را ویرایش کرده است. شناسهٔ کاربری هرگز تغییر نمیکند. |
timestamp | قالبهای استاندارد تاریخ و ساعت از انجمن جهانی وب W3C. | زمان آخرین ویرایش (مثلاً 2016-12-31T23:59:59.999Z). |
visible | "true" یا "false" | مشخص میکند که آیا شیء از پایگاهداده حذف شده یا خیر. اگر visible="false" آنگاه شیء باید فقط با فراخوانی تاریخچه بازیابی شود. |
version | عدد صحیح | شمارهٔ نسخهٔ شیء. برای اشیای نوساخته برابر با 1 است و هنگامی که ویرایش تازهای از آن به سرور ارسال شود، سرور یک واحد آن را افزایش میدهد. اگر نسخهٔ شیء ارسالی از سمت کاربر با نسخهٔ فعلی همان شیء در پایگاهدادهٔ سرور نخواند، سرور نسخهٔ ارسالی را نمیپذیرد. |
changeset | عدد صحیح | شمارهٔ changesetی که شیء در آن ساخته یا ویرایش شده است (توصیه میشود برنامهها برای سازگاری با تکامل تدریجی پایگاهدادهٔ OSM در گذر زمان، از شناسههای ۶۴ بیتی پشتیبانی کنند. برنامههایی که فقط دادهها را فراخوانی میکنند و با بهروزرسانی آنها کاری ندارند میتوانند این مشخصهٔ اطلاعاتی را نادیده بگیرند). |
البته علاوه بر اینها، تگها و تاریخچهٔ کاملی از ویرایشهای هر عنصر را نیز ذخیره میکنیم.
همچنین ببینید
|