|
JOSM - ساخت پیشتنظیمهای سفارشیدر فصل قبل دیدیم که منوهای پیشتنظیم سفارشی را چگونه میتوانیم به JOSM اضافه کنیم. در این فصل چگونگی ساخت فایلهای پیشتنظیم شخصی را پوشش خواهیم داد. هشدار! این موضوعی پیشرفته است… در جریان باشید! مقدمهای بر XMLبهمنظور ایجاد منوی Presets شخصی، ابتدا باید با زبانی به نام XML آشنایی داشته باشیم. اگر از قبل با XML آشنا هستید، به بخش بعدی بروید. XML، مخفف Extensible Mark-up Language، یک زبان رایانهای شبیه به HTML است. تفاوت کلیدیشان در این است که XML برای انتقال داده و نه نمایش آن طراحی شده است. بسیاری از برنامههای کاربردی در اینترنت از جمله OpenStreetMap برای دادهرسانی از XML استفاده میکنند. XML از عناصر استفاده میکند و هر عنصر میتواند عناصر کودک دیگری را در خود داشته باشد. بهعنوان مثال، بیایید تصور کنیم که میخواهیم یک فایل XML ایجاد کنیم که حاوی دادهٔ مربوط به منوی یک رستوران است. باید یک عنصر ریشه برای نگهداری تمام دادهٔ مربوط به منو ایجاد کنیم. عنصر ریشه یک برچسب باز و یک برچسب بسته خواهد داشت، مانند این:
اطلاعات در داخل عنصر قرار دارد و در هر عنصری، میتوان عناصر بیشتری قرار داد.
در این مثال دو عنصر <item> را درون عنصر <menu> قرار دادهایم تا دو آیتم مختلف موجود در منو را توصیف کنند. هر آیتم خود حاوی دو عنصر <cost> و <description> است. همچنین توجه کنید که چگونه name=”Hamburger” در داخل تگ <item> نوشته شده است. به این خصیصه (attribute) میگوییم و اطلاعاتی درمورد عنصر اضافه میکند. لغتشناسی XML
استفاده از XML برای نگهداری و انتقال داده، عالی است، زیرا فهم آن برای کامپیوترها آسان است. فایلهای پیشتنظیم JOSMبیایید یک فایل پیشتنظیم نمونه را به JOSM اضافه کنیم و آن را تجزیهوتحلیل کنیم که چگونه کار میکند.
توجه داشته باشید که در فرمِ ظاهرشده سه خانه وجود دارد و هر خانه نوع ورودی متفاوتی میپذیرد. اولین خانه، نام ساختمان، یک رشتهٔ متنی را بهعنوان ورودی میپذیرد. دومی، کاربرد ساختمان، یک منوی اُفتان دارد. آخرین خانه، یک چکباکس است، به این معنی که فقط میتواند یکی از دو مقدار روشن یا خاموش را داشته باشد. حالا بیایید نگاهی بیندازیم به فایل XMLای که این فرم Preset را تعریف میکند.
فعلاً از شش خط اول و خط آخر صرفنظر و بر آنچه بین برچسبهای <item> قرار دارد تمرکز میکنیم. خط اول اینگونه است:
این برچسب بازکنندهٔ یک آیتم است که به منو اضافه میشود. این برچسب دو خصیصه دارد: name و type. name مشخص میکند که چگونه این مورد در منوی Presets نمایش داده شود. type این پیشتنظیم را محدود به نوع خاصی از اشیا میکند. در این مورد، این پیشتنظیم را تنها میتوان برای نقاط و اشکال - بهعبارت دیگر گرهها و راههای بسته - استفاده کرد. اگر سعی کنید این پیشتنظیم را بر یک خط به کار ببرید، کار نمیکند. بیایید به خط بعدی نگاه کنیم:
وقتی روی منو کلیک میکنید و فرم نمونه را باز میکنید، در بالا عبارت Building Form را میبینید. این عبارت همین متنی است که در این خط تعریف شده. این یک عنصر <label> را تعریف میکند و کارش ساده است: متن را در فرم نمایش میدهد. خود متن با خصیصهٔ text=”some text” تعریف میشود. چند خط پایینتر بروید و این را پیدا کنید:
این یکی از برچسبهایی است که به شیء موردنظر ما اعمال میشود. از آنجا که از عنصر <key> استفاده میکند، زمانی که این پیشتنظیم انتخاب شود تگ OSMای که در اینجا آورده شده، بهطور خودکار به شی اعمال میشود. ازاینرو این شی بهطور خودکار تگ building=yes خواهد گرفت. خط بعدی کمی متفاوت است و از عنصر <text> استفاده میکند.
عنصر <text> یک خانهٔ خالی ایجاد میکند. هنگامی که فرم در JOSM ایجاد میشود، کاربر میتواند خانهٔ خالی را پر کند. از آنجا که خصیصهٔ delete_if_empty=”true” تنظیم شده است، اگر کاربر این خانه را خالی بگذارد، هیچ تگی اضافه نخواهد شد. در خط بعد، منوی اُفتان فرم تعریف میشود:
یک کادر اُفتان بهوسیلهٔ عنصر <combo> تعریف میشود. همانند عنصر <text>، خصیصهٔ key کلید تگ را تعریف میکند. مقدار آن سپس از یک لیست مقادیر ممکن انتخاب میشود. با استفاده از خصیصهٔ display_values میتوانید نامهای دیگری را برای نمایش در منوی اُفتان انتخاب کنید، که شاید فهم آن از مقادیر تگ OSM آسانتر باشد. در نهایت، به خطی که چکباکس را تعریف میکند نگاهی بیندازیم.
کار عنصر <check> - همانطور که حدس زدید! - تعریف چکباکس است. خصیصهٔ default=”off” میگوید که بهصورت پیشفرض بدون تیک باشد. خصیصههای دیگر را قبلاً دیدهاید. ساخت فایل پیشتنظیم خودتانبهترین راه برای ساخت فایل پیشتنظیمهای خودتان، این است که یکی از فایلهای موجود را بردارید و آن را دستکاری کنید تا به اهداف خود برسید. این فایل نمونه را با خیال راحت ویرایش کنید و با آن آزمایش کنید تا اصول پایه را بیاموزید. فقط به یاد داشته باشید که هر بار که آن را ذخیره میکنید، باید JOSM را باز و بسته کنید تا تغییرات بار شود. قبل از اینکه ساخت پیشتنظیمهای خود را آغاز کنید، باید بهدقت دربارهٔ تگهایی که میخواهید استفاده کنید، فکر کنید. اختراع تگ جدید خود مقولهٔ مجزای دیگری است. بهطور کلی، درصورت موجودبودن باید از تگهای موجود OSM استفاده کنید. اکثر تگهای موجود در صفحهٔ عوارض نقشه در ویکی OSM ذکر شدهاند. این فایل نمونه شامل اغلب عناصری است که در یک فایل پیشتنظیم JOSM پیدا میکنید (تعداد عناصر فرم خیلی زیاد نیست). اگر میخواهید با یک فایل پیشتنظیم بسیار پیچیدهتر آزمایش کنید، فایل dhaka_presets.xml را از اینجا دانلود کنید. بهعلاوه، توضیح مفصّلی از تمام عناصر ممکن را میتوانید در اینجا پیدا کنید. موفق باشید!
این فصل مفید بود؟
به ما بگویید و کمک کنید راهنماها را بهتر کنیم!
|