Fa:One feature, one OSM element

From OpenStreetMap Wiki
Jump to navigation Jump to search

«یک عارضه، یک عنصر در OSM» یکی از اصول روش‌های خوب است و یعنی هر عارضه در جهان واقعی باید فقط با یک عنصر در OSM رسم شود.

اشیای نقشه

قواعد عمومی

هر عنصر باید نمایندهٔ یک و فقط یک عارضه بر روی زمین باشد. چند مثال:

  • برای عارضه‌ای که از چند ساختمان در یک محوطه تشکیل می‌شود (مثلاً مدرسه) یک محدوده می‌کشیم که زمین را مشخص می‌کند و با چند محدودهٔ دیگر هم ساختمان‌ها را مشخص می‌کنیم. تگ‌ها را به کل محدودهٔ محوطه می‌دهیم، نه به ساختمان‌ها. مگر اینکه ساختمان‌ها فرق کنند. کسانی که از پایگاه‌داده بهره‌برداری می‌کنند (سازندگان نرم‌افزار و...) به راحتی می‌توانند بدانند ساختمان‌هایی که داخل محدودهٔ مدرسه قرار گرفته جزئی از مدرسه است.
  • برای عارضه‌ای که از یک ساختمان تشکیل می‌شود و شکل و موقعیت ساختمان معلوم است، یک محدوده می‌کشیم و تگ‌های مناسب را می‌دهیم.
  • برای عارضه‌ای که موقعیتش مشخص است اما شکل آن نامشخص یا نامرتبط است، یک گره می‌گذاریم و تگ‌های مناسب را می‌دهیم.
  • برای عارضه‌ای که از چندین عارضهٔ کوچک‌تر تشکیل می‌شود، معمولاً بهترین کار استفاده از رابطه است. مثلاً relation:route برای مسیر کوهنوردی یا خط حمل‌ونقل عمومی که از چندین راهِ highway=* یا railway=* تشکیل می‌شود.

یک تگ اصلی عارضه به‌ازای هر عنصر OSM

روش ایدئال آن است که هر عنصر یا شیء در OSM، فقط یک تگ اصلی عارضه داشته باشد تا فقط یک عارضه را روی زمین مشخص کند.

خصوصیات یا مشخصه‌های دیگر عارضه را می‌توانیم روی همان شیء تگ‌گذاری کنیم.

مثلاً می‌توانیم عارضهٔ leisure=picnic_site را داشته باشیم (تگ اصلی عارضه) و تگ drinking_water=yes (مشخصات بیشتر عارضه) را هم کنار آن اضافه کنیم. استفاده از تگ عارضه‌ای amenity=drinking_water (یک عارضهٔ جداگانه) روی همان گره یا محدوده درست نیست.

مثال‌هایی از وضعیت‌های بد

  • یک محدوده با یک گره داخل آن که هر دو تگ‌های یکسانی دارند و نمایندهٔ یک چیز در جهان واقعی هستند.
  • یک محدوده برای محوطه و یک محدوده برای تنها ساختمان داخل محوطه که تگ مشخص‌کنندهٔ عارضه روی هر دو بیاید.
  • یک راه بسته که دو تگ اصلی عارضه داشته باشد و یکی از آن‌ها یک عارضهٔ خطی را مشخص کند مانند barrier=hedge و دیگری یک عارضهٔ محوطه‌ای را مشخص کند مانند amenity=school. این حالت مبهم است و معلوم نیست که مانع به‌شکل خط است یا محدوده. همچنین نمی‌توانیم تشخیص دهیم تگ‌هایی که خصوصیات دیگر عارضه را توصیف می‌کنند مربوط به کدام یک از این عارضه‌ها است.

وضعیت‌هایی که شاید به چند عنصر نیاز داشته باشیم

  • از یک چیز بیش از یک مورد در یک محدوده وجود داشته باشد. مثلاً دو مدرسه که زمینشان یکی است. در حالت طبیعی اگر مدرسه‌ها مجزا باشند در این صورت زمین‌های مجزا هم خواهند داشت اما اگر تنها چیزی که این دو مدرسه را از هم تفکیک می‌کند ساختمانشان است، در این صورت هر دو مدرسه را می‌توانیم با محدوده‌های روی هم رسم کنیم یا شاید یکی را به‌شکل محدوده و دیگری را با گره مشخص کنیم.
  • ساختمان‌های چندمنظوره: ساختمان را با building=* تگ‌گذاری می‌کنیم و برای مکان‌های داخلی ساختمان از گره یا محدوده استفاده می‌کنیم تا مثلاً مغازه‌های داخل یک مرکز خرید را مشخص کنیم.
  • رودها معمولاً با waterway=riverbank یا natural=water+water=river برای محدودهٔ پوشیده با آب و waterway=river روی یک راه برای جریان اصلی رود رسم می‌شوند و تگ‌هایی مانند name=* را به waterway=river می‌دهیم.
  • روستاها با تگ place=village روی یک گره که در مرکز روستا قرار می‌گیرد رسم می‌شوند و محدودهٔ مسکونی روستا با landuse=residential رسم می‌شود. تگ‌هایی مانند name=* را روی گره place=village اضافه می‌کنیم.

همچنین ببینید

  • Relation:multipolygon - روش استاندارد برای رسم محدوده‌های پیچیده (مثلا مدرسه‌ای که یک جاده از وسطش می‌گذرد و آن را به دو قسمت تقسیم کرده یا یک دریاچه که جزیره داشته باشد)
  • Relation:site - پیشنهاده‌ای برای عارضه‌های چندقسمتی که نمی‌توانیم با multipolygon مشخص کنیم (مثلاً نیروگاه بادی؛ عارضه‌ای که از چندین گره تشکیل می‌شود)
  • building:part=* - چطور ساختمان‌های پیچیده را تگ‌گذاری کنیم