JOSM - သီးသန့်ပြင်ဆင်ထားသော Presets များကိုဖန်တီးခြင်း

JOSM ဆော့ဖ်ဝဲလ်အတွင်းသို့ သီးသန့်ပြင်ဆင်ထားသော Presets menu ထည့်သွင်းခြင်းကို ရှေ့သင်ခန်းစာ ၌လေ့လာခဲ့ပြီးဖြစ်သည်။ ယခုသင်ခန်းစာတွင်ယင်း Presets ဖိုင်များဖန်တီးခြင်းကိုလေ့လာမည်ဖြစ်သည်။

သတိပေးချက် … ယခုအပိုင်းသည် အဆင့်မြင့်ပိုင်းဖြစ်၏။ သတိပြုလေ့လာရန်ဆင်ခြင်ပါ။

XML ကိုမိတ်ဆက်ခြင်း

ကျွန်ုပ်တို့ကိုယ်ပိုင် Presets menu များဖန်တီးရန်အတွက် XML ဟုခေါ်သော ကွန်ပျူတာသုံး ဘာသာစကားတစ်ခုကို နားလည်ထားရန်လိုအပ်ပါသည်။

XML ဆိုသည်မှာ “Extensible Mark-up Language” ကိုအတိုချုံ့ထားခြင်းဖြစ်ပြီး အခြားကွန်ပျူတာဘာသာစကား တစ်မျိုးဖြစ်သော HTML နှင့်ဆင်ဆင်တူပါသည်။ အဓိကကွဲပြားချက်မှာ XML ကိုဒေတာသယ်ဆောင်ရန်အတွက်တီထွင်ထားခြင်းဖြစ်ပြီး အသုံးပြုသူများကြည့်မြင်နိုင်ခွင့်ရသော အစိတ်အပိုင်းမဟုတ်ချေ။ OpenStreetMap အပါအဝင်အင်တာနက်ပေါ်ရှိအသုံးချဆော့ဖ်ဝဲလ်များစွာသည် ဒေတာပို့လွှတ်ရန်အတွက် XML ကိုအသုံးပြုကြသည်။ XML တွင်ဒေတာအချက်အလက်များကိုကိုင်တွယ်လုပ်ဆောင်ရန်အတွက် elements များကိုအသုံးပြုသည်။ element တခုတွင် လက်အောက်ခံ elements များလည်းပါဝင်လေ့ရှိသည်။ ဥပမာ … စားသောက်ဆိုင်တစ်ခု၏ ဟင်းလျာစာရင်းကို XML ဖိုင်တခုအဖြစ် တည်ဆောက်ကြည့်ပါစို့။ ဟင်းလျာများနှင့်သက်ဆိုင်သော အချက်အလက်များအားလုံး ပါဝင်သော root element တခုဖန်တီးရပါမည်။ ယင်း root element တွင်အောက်ပါအတိုင်းအဖွင့်၊အပိတ် tag များပါဝင်ရမည်။

  <menu>
  ... whatever data we want to include in our menu ...
  </menu>

element တခုတွင်သတင်းအချက်အလက်များပါဝင်မည်ဖြစ်ပြီး တစ်ခုထက်ပိုသော element များလည်း မူလ element အတွင်း၌ပါဝင်နေနိုင်သည်။

  <menu>
    <item name=“Hamburger”>
      <cost>400</cost>
      <description>Delicious beef patty</description>
    </item>
      <item name=“Nasi Goreng”>
      <cost>200</cost>
      <description>Indonesian Fried Rice</description>
    </item>
  </menu>

ယခုဥပမာတွင် ဟင်းလျာစာရင်း၌ပါဝင်သော အမျိုးအစားနှစ်မျိုးအတွက် element နှစ်ခုကို <menu> element အတွင်းထည့်သွင်းဖော်ပြထားသည်။ item element တစ်ခုစီတွင် နှင့် ဟူသော element နှစ်မျိုးထပ်မံပါဝင်သည်။ ပထမဆုံးတွေ့မြင်ရသည့် tag ၏အဖွင့်ပိုင်းအတွင်းတွင် name=”Hamburger” ဟုရေးထားသည်ကိုသတိပြုပါ။ ထိုအရာကို attribute ဟုခေါ်ပြီး element နှင့်သက်ဆိုင်သော သတင်းအချက်အလက်ကို ထည့်သွင်းပေးထားခြင်းဖြစ်သည်။

XML ဆိုင်ရာပညာရပ်ဝေါဟာရ

  • root element ။ ။ XML ဖိုင်တခု၏အပြင်ဘက်အကျဆုံး element တခုဖြစ်ပြီး ယင်း XML ဖိုင်တွင်ပါဝင်သော အရာများကိုညွန်းဆိုပေးသည်။
  • element ။ ။ XML ဖိုင်တွင်ပါဝင်သောအစိတ်အပိုင်းတစ်ခုခု။ <item> … အချက်အလက် … </item> ကဲ့သို့ အဖွင့်၊အပိတ် tag များဖြင့်ရေးသားသည်။
  • tag ။ ။ ကွင်းအဖွင့်၊အပိတ်များဖြင့်ရေးသားဖော်ပြသည်။ ဥပမာ။ <item>။ element တခု၏အဖွင့် tag ကို <item> ဟုရေးသားပြီး အပိတ် tag ကို </item> ဟုရေးသည်။ ယခုဖော်ပြသော tag ကို OSM ၏အညွှန်းဖော်ပြချက်(OSM tag) များနှင့်မရောထွေးပါစေနှင့်။
  • attribute ။ ။ tag တစ်ခုအတွင်း ပါဝင်သောသတင်းအချက်အလက်။ ဥပမာ။ name=”Hamburger”

ကွန်ပျူတာမှ အလွယ်တကူနားလည်သော XML ဘာသာစကားကိုအသုံးပြုခြင်းသည် ဒေတာအချက်အလက်များကို ကိုင်တွယ်အသုံးပြုရန်နှင့် သယ်ယူပို့ဆောင်ရာတွင် အထူးကောင်းမွန်သည်။

JOSM Presets ဖိုင်များ

Presets ဖိုင်နမူနာတစ်ခုကို JOSM ဆော့လ်ဖ်ဝဲလ်အတွင်းထည့်သွင်းကာ ယင်း၏အလုပ်လုပ်ပုံကိုလေ့လာကြည့်ပါမည်။

  • sample_presets.xml ဖိုင်ကို အင်တာနက်မှတဆင့်ရယူပါ။
  • ရှေ့သင်ခန်းစာ တွင်လေ့လာခဲ့သည့်အတိုင်း JOSM ဆော့လ်ဖ်ဝဲလ်အတွင်းထည့်သွင်းဖွင့်လှစ်ပါ။
  • အလွှာသစ်တစ်ခုပြုလုပ်ပြီး အရာဝတ္ထုတစ်ခုကိုရေးဆွဲပါ။
  • Preset menu ကိုသွားကြည့်ရှုပါက “Sample Building” ဟုအမည်ပေးထားသော အမျိုးအစားသစ်တစ်ခုကိုတွေ့ရမည်။ ယင်းအပေါ်တွင် ကလစ်တစ်ချက်နှိပ်ပါ။

sample building menu

ထည့်သွင်းရမည့်အမျိုးအစားမတူညီကြသော အပိုင်းသုံးပိုင်းပါဝင်သည့် ပုံစံတစ်ခုပေါ်ထွက်လာမည်။ အဆောက်အဦအမည်(building name) ကိုဖော်ပြရန် စာရေးသားဖြည့်သွင်းရမည်။ အဆောက်အဦကိုအသုံးပြုပုံ(building use) အပိုင်းတွင် အောက်ဖက်သို့ညွှန်ပြထားသောမြားခေါင်းကိုနှိပ်ပြီး ပေါ်လာသောအကြောင်းအရာများထဲမှတစ်ခုကိုရွေးချယ်ရန်ဖြစ်သည်။ နောက်ဆုံးအပိုင်းမှာ ဟုတ်၊မဟုတ် ရွေးချယ်ရန် အကွက်ငယ်(check box) ဖြစ်၏။

sample presets form

Preset ပုံစံကို သတ်မှတ်ပေးသော XML ဖိုင်ကိုတစ်လှည့်ကြည့်ပါမည်။

  • သင့်ကွန်ပျူတာအတွင်းရှိ XML ဖိုင်ကိုရှာဖွေပါ။ ပြီးလျှင်၎င်းကို text editor တစ်ခုနှင့် ဖွင့်ပါ။ အကယ်၍သင်သည် Windows သုံးသည်ဆိုလျှင်အတွက် Notepad ပရိုဂရမ်ကို အသုံးပြုနိုင်သည်။ အကယ်၍သင်သည် ပိုမိုအသုံးပြုရလွယ်ကူသော editor တစ်ခုကိုလိုချင်လျှင် အင်တာနက်မှ အခမဲ့ရယူနိုင်သော Notepad++ ကိုလည်း download ပြုလုပ်နိုင်ပါလိမ့်မည်။
  • နမူနာ (sample_presets.xml) ဖိုင်ကို အောက်ပါအတိုင်းတွေ့မြင်ရမည်။

sample presets file

ပထမဆုံးတွေ့ရမည့်စာကြောင်း ၆ ခုနှင့် အောက်ဆုံးရှိစာကြောင်းတို့ကိုမှလွဲ၍<item> tags အတွင်းရှိ စာကြောင်းများကို အာရုံစိုက်ကြပါစို့။

ပထမစာကြောင်းကို အောက်ပါအတိုင်းတွေ့ရမည်။

  <item name="Sample Building" type="node,closedway">

ထိုစာကြောင်းမှာ Preset menu အတွင်းထည့်သွင်းလိုက်သော item တခု၏အဖွင့်ပိုင်းဖြစ်ပြီး အမည်(name) နှင့် အမျိုးအစား(type) ဟူ၍ attribute နှစ်မျိုးပါရှိသည်။ Preset menu တွင်ပြသ မည့်အရာကို အမည်(name) ကသတ်မှတ်ပေးပြီး မည်သည့်အမျိုးအစားဖြစ်ကြောင်းကို အမျိုးအစား(type) ကကန့်သတ်ဖော်ပြပေးသည်။ ယခုနမူနာတွင် Preset သည် အမှတ်နှင့်ပုံသဏ္ဍာန်များကိုသာ သက်ရောက်မှုရှိကြောင်းတွေ့ရမည်။ မျဉ်းကြောင်းများကိုမူသက်ရောက်မှုမရှိနိုင်ချေ။

နောက်တစ်ကြောင်းကိုကြည့်ပါမည်။

  <label text="Building Form" />

Presets ဖိုင်နမူနာပုံစံကိုဖွင့်လှစ်စဉ်က “Building Form” ဟူသောစာကြောင်းကို ပုံစံ၏ထိပ်ပိုင်းတွင်မြင်တွေ့ပါလိမ့်မည်။ ထိုစာကြောင်းကို <label> element ဖြင့်ဖော်ပြပေးနိုင်သည်။ သင်ဖော်ပြလို သောစာကြောင်းကို <label> element အတွင်းထည့်သွင်းပြီး attribute အဖြစ် text=”မိမိရေးသားလိုသောအကြောင်းအရာ”ကိုဖော်ပြပေးနိုင်သည်။

စာကြောင်းကိုကြည့်ပါ။

  <key key="building" value="yes" />

မိမိရွေးချယ်လိုက်သော အရာဝတ္ထုကိုသက်ရောက်စေနိုင်သော tag တခုဖြစ်သည်။ <key> element ကိုအသုံးပြုထားသဖြင့် Preset menu ကိုရွေးလိုက်သည်နှင့် OSM ဒေတာ အညွှန်းတွင်အလိုအလျောက် သက်ရောက်မှုရှိစေနိုင်သည်။ ထို့ကြောင့် အဆောက်အဦဖြစ်ကြောင်းဖော်ပြသည့် building=yes အညွှန်းကို အလိုအလျောက်ရရှိမည်ဖြစ်သည်။

နောက်တစ်ကြောင်းတွင် <text> element ကိုအသုံးပြုထားပြီး ကွဲပြားမှုအနည်းငယ်ရှိသည်။

  <text key="name" text="Name of Building" default="" delete_if_empty="true" />

<text> element သည်အကွက်လွတ်တစ်ခုကို ဖန်တီးပေးပြီး JOSM ဆော့ဖ်ဝဲလ်ရှိ ပုံစံ(form) ပေါ်တွင် အသုံးပြုသူတဦးက ဖြည့်သွင်းနိုင်ရန်ဖြစ်သည်။ delete_if_empty=”true” ဟူသော attribute ကိုထည့်သွင်းထားသဖြင့် ယင်းအကွက်လွတ်တွင် အညွန်းမဖြည့်သွင်းလိုပါက ချန်ထားခဲ့နိုင်စေသည်။

ပုံစံ(form) ပေါ်ရှိ ရွေးချယ်ရန်အကွက်(dropdown box) ကိုမူ အောက်ပါအတိုင်းသတ်မှတ်ပေးနိုင်သည်။

  <combo key="building:use" text="Building Use" values="residential, commercial, industrial" />
  <display_values="Residential, Commercial, Industrial"/>

Dropdown box ကို <combo> element ဖြင့်ဖော်ပြသည်။ JOSM ဆော့ဖ်ဝဲလ်ရှိ အညွန်းဖော်ပြချက်များတွင် key နှင့် values ဟူ၍ပါဝင်ကြောင်း လေ့လာခဲ့ပြီးဖြစ်သည်။ <text> element ရှိ key attribute သည် JOSM မြေပုံရှိ အရာဝတ္ထု၏အညွန်းတွင်ပါသော key ကိုသတ်မှတ်ပေးပြီး value အတွက် values attribute များအတွင်း ထည့်သွင်းထားသည်များမှ ရွေးချယ်မှုကို ပြုလုပ်ခိုင်းသည်။ Dropdown box မှဖော်ပြပေးသောရွေးချယ်မှုများကို display_values attribute ဖြင့်ထိန်းကွပ်ပေးသည်။

ဟုတ်၊မဟုတ် စစ်ဆေးသောတာဝန်ကိုယူထားသော checkbox ကိုအောက်ပါအတိုင်းသတ်မှတ်သည်။

  <check key="building:vacant" text="Is the building vacant?" default="off" /> 
  <delete_if_empty="true" />

checkbox ကိုသတ်မှတ်ဖော်ပြရန် <check> element ကိုအသုံးပြုသည်။ ပုံမှန်အားဖြင့် ရွေးချယ်မှုပြုလုပ်သောအကွက်ငယ်တွင် မည်သည့်ရွေးချယ်မှုမျှ ပါဝင်လေ့မရှိစေရန်အတွက် default=”off” attribute ဖြင့်ရေးသားဖော်ပြသည်။

ကိုယ်ပိုင် Presets ဖိုင်များကိုဖန်တီးခြင်း

ကိုယ်ပိုင် Presets ဖိုင်များဖန်တီးရန်အတွက် အကောင်းဆုံးနည်းလမ်းမှာ ရှိပြီးသားဖိုင်မှပွါးယူပြီး ကိုယ်ပိုင်ပြုပြင်တည်ဆောက်ရန်ဖြစ်သည်။ ယခု နမူနာဖိုင်ကိုလေ့လာတည်းဖြတ်ပြီး အခြေခံသဘောတရားများကိုနားလည်အောင်လေ့ကျင့်ပါ။ ပြင်ဆင်တည်းဖြတ်မှုတစ်ကြိမ်ပြုလုပ်သိမ်းဆည်းပါက JOSM ဆော့ဖ်ဝဲလ်ကိုလည်း တစ်ကြိမ်အပိတ်၊အဖွင့် ပြုလုပ်ပေးရန်လိုအပ်ပါသည်။ သို့မှသာ ပြုပြင်လိုက်သောအကြောင်းအရာများ သက်ရောက်မှုရှိမည်ဖြစ်၏။

ကိုယ်ပိုင် Presets ဖိုင်များဖန်တီးမှုမပြုမီတွင် အညွန်းဖော်ပြချက်များကို သေချာစွာနားလည်ထားရန်လိုအပ်သည်။ အညွန်းအသစ်ဖော်ပြမှုပေါ်မူတည်လျက် ပါဝင်မှုများလည်း ပြောင်းလဲသွားမည်ဖြစ်သည်။ OSM တွင်ပါဝင်သော အညွှန်းဖော်ပြချက်များကိုအသေးစိတ်သိလိုပါက Map Features page on the OSM Wiki စာမျက်နှာသို့ဝင်ရောက်လေ့လာနိုင်သည်။

JOSM Presets ဖိုင်တွင်တွေ့ရလေ့ရှိသော element များကို နမူနာဖိုင်တွင်ပါဝင်အောင် စီမံပေးထားသည်။ပို၍ရှုပ်ထွေးသော Presets ဖိုင်ကိုလေ့လာလိုပါက dhaka_presets.xml ကိုအင်တာနက်မှရယူလိုက်ပါ။

Presets ဖိုင်နှင့်ပတ်သက်၍သုံးစွဲနိုင်သော element များအကြောင်း အသေးစိတ်ရှင်းလင်းချက်ကို ထပ်ဆောင်းရယူလိုပါက ဤနေရာတွင်နှိပ်ပါ။

ကံကောင်းပါစေ။