../../../../_images/image610.png

Bab 4:

Tujuan Pembelajaran

  • Memahami tags

  • Memahami XML

  • Memahami keys dan values

  • Membuat preset

  • Memasukkan file preset ke dalam JOSM

  • Menerapkan preset baru pada sebuah objek

Sekarang Anda mungkin telah memiliki pemahaman yang baik mengenai bagaimana berbagai objek dapat digambar menggunakan JOSM, dan bagaimana Anda menambahkan informasi ke sebuah objek dan menjelaskan apa objek-objek tersebut. Anda menambahkan atribut kepada titik, gasir, atau berbagai bentuk dengan memberikan tag kepada objek tersebut. Dengan menggunakan menu preset pada JOSM, Anda dapat dengan mudah mencantumkan tag yang benar kepada sebuah objek, kemudian Anda dapat mengisi informasinya ke dalam form yang ada. Pada bab ini kita akan membahas kembali apa itu tag dan preset sekali lagi, dan mempelajari bagaimana kita membuat menu preset kita sendiri pada JOSM.

1. Tags and presets

Anda tentunya ingat bahwa setiap kali Anda selesai menggambar sebuah objek ke dalam peta di JOSM, Anda perlu menambahkan tag kepada objek tersebut agar dapat mendeskripsikan apa objek tersebut, namanya, dan berbagai atribut lainnya. Sebagai contoh ketika Anda mau membuat sebuah toko pakaian dengan nama “Some Clothing Shop”, Anda membutuhkan dua buah tag – satu tag untuk menjelaskan bahwa titik tersebut adalah sebuah toko pakaian, dan satu tag lainnya untuk menempatkan nama dari toko tersebut. Pada JOSM, tag-tag tersebut ditunjukkan pada jendela Properti ketika objek yang dimaksud dipilih.

../../../../_images/image882.png

Tag terdiri dari dua bagian, yaitu key dan value. Key biasanya mendefinisikan tipe informasi yang Anda berikan, dan value mencantumkan informasi yang lebih spesifik. Contohnya terdapat dua buah tag, yang terdiri dari dua pasang yaitu key dan value.

KEY = VALUE

name = Some Clothing Shop

shop = clothes

Ketika kita membuat sebuah titik menggunakan tag ini, JOSM akan mengenalinya dengan menampilkan ikon atau simbol seperti ini:

../../../../_images/image892.png

Dan ketika kita melihat ini pada website OpenStreetMap , objek tersebut akan tampak seperti ini:

../../../../_images/image901.png

Hal ini dapat terjadi karena sebelumnya kita telah memasukkan tag yang sesuai.

Karena OpenStreetMap sangat terbuka bagi umum, siapapun dapat menambahkan tag yang mereka inginkan pada objek manapun. Namun bagaimana jika ada orang di Inggris yang tidak setuju dengan orang di Jepang mengenai cara terbaik dalam memberikan tag pada suatu objek? Sebagai contoh, sangat penting jika semua sekolah memiliki tag yang sama yang mendeskripsikannya sebagai sebuah sekolah. Jika beberapa orang ingin memberikan tag pada sekolah berupa amenity=school namun beberapa orang lainnya ingin memberikan tag sebagai education=school, ini bisa menjadi masalah. Oleh karena itu, kita semua harus setuju mengenai bagaimana memberikan tag pada sebuah tempat.

OpenStreetMap telah digunakan selama beberapa tahun terakhir, maka tentunya sudah ada standar mengenai bagaimana mengidentifikasi sebagian besar jenis lokasi, dan yang telah terdaftar dalam halaman Map Features pada Wiki OSM.

http://wiki.openstreetmap.org/wiki/Map_Features

Halaman situs ini telah berkembang selama beberapa tahun ini seiring dengan semakin banyak orang yang memetakan semakin banyak objek dan merasa membutuhkan tag untuk mendukung kegiatannya. Bisa dikatakan tidak mungkin bagi kita untuk dapat mengingat semua tag yang ada, dan cukup merepotkan bila kita harus melihat ke website setiap kali kita ingin memberi tag pada objek. Oleh karena itu, JOSM memiliki sebuah menu Preset yang akan mempermudah kita dalam memberikan tag yang benar kepada sebuah objek. Dengan menu Preset, kita dapat dengan mudah menemukan tag untuk sekolah, memasukkan informasi ke dalam form yang ada, dan tidak perlu khawatir mengenai mana tag yang benar apakah amenity=school atau education=school atau yang lainnya lagi.

../../../../_images/image913.png

Kenali bahwa ketika Anda menambahkan atribut menggunakan menu preset, maka tag yang benar secara otomatis ditambahkan pada bagian menu Properti di sebelah kanan layar.

JOSM telah menyediakan sebagian besar preset yang Anda butuhkan, namun terkadang Anda mungkin mau menambahkan preset yang Anda inginkan untuk membuat tag untuk beberapa tipe data yang spesifik. Pada chapter ini akan dijelaskan mengenai bagaimana membuat sebuah menu Preset sendiri.

2. Introduction to XML

Dalam rangka membuat menu Preset Anda sendiri, pertama-tama kita perlu mengerti bahasa XML. XML, yang merupakan kependekan dari Extensible Mark-up Language, adalah sebuah bahasa yang mirip dengan HTML. Perbedaan utamanya adalah XML didesain untuk membawa data, bukan menampilkannya. Banyak aplikasi di internet yang menggunakan XML untuk mengirimkan data, termasuk OpenStreetMap. XML menggunakan elemen, dan setiap elemen dapat mengandung anak elemen di dalamnya. Sebagai contoh, mari kita bayangkan bahwa kita mau membuat sebuah file XML yang mengandung data mengenai menu restoran. Kita harus membuat sebuah file XML yang mengandung semua data mengenai menu tersebut, yang dikenal sebagai root element. Elemen utama kita akan memiliki tag pembuka dan penutup seperti ini:

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

Informasi terkandung dalam sebuah elemen, dan dalam setiap elemen bisa jadi terdapat elemen-elemen lainnya.

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

Pada contoh ini kita telah meletakkan dua elemen <item> dalam elemen <menu> kita untuk menjelaskan dua hal berbeda yang terdapat di dalam menu. Setiap hal mengandung dua lagi elemen di dalamnya, <cost> dan <description>. Lihat juga bahwa bagaimana kita telah menulis name=”Hamburger” di dalam pembuka tag <item>. Hal ini disebut atribut, dan memberi informasi mengenai elemen.

Terminologi XML

  • root element: elemen paling penting dari sebuah dokumen XML, yang mendeskripsikan apa yang ada didalamnya

  • element : objek XML apapun, diisi dengan tag pembuka dan penutup, seperti <item>...data...</item>

  • tag: sesuatu yang terdapat di dalam tanda < >, seperti <item>. < item> adalah tag pembuka pada sebuah elemen, dan </item> adalah tag penutup.

  • attribute: sebuah informasi yang ada di dalam sebuah tag, seperti name=“Hamburger”

Dengan menggunakan XML untuk menerima dan mengirim/memancarkan data merupakan cara yang baik karena hal tersebut mudah dimengerti untuk komputer. Untuk memberikan satu lagi contoh, beginilah bagaimana tampilan XML untuk titik yang telah kita buat sebelumnya di JOSM:

<osm>
   <node id="6799999167" lat="-8.7542864" lon="123.5516224" user="rukeli" uid="923929" visible="true" version="4" changeset="8343565" timestamp="2011-06-04T21:50:42Z">
        <tag k="name" v="Some Clothing Shop"/>
        <tag k="shop" v="clothes"/>
   </node>
</osm>

XML ini memiliki elemen utama <osm> yang menunjukkan bahwa data OpenStreetMap terkandung di dalamnya. Lalu XML ini juga memiliki suatu elemen <node> yang merupakan cara bagi OpenStreetMap untuk mendeskripsikan sebuah titik. Node tersebut memiliki sejumlah atribut, termasuk suatu nomor id yang unik, koordinat dari titik tersebut, pengguna yang membuat titik tersebut, dan beberapa informasi tambahan yang tidak akan kita bahas sekarang. Di antara tag pembuka <node> dan tag penutup </node>, ada dua tipe elemen <tag> lagi. Setiap <tag> memiliki sebuah atribut k dan sebuah atribut v. Mereka adalah kunci/keys dan nilai/values yang telah kita tambahkan di JOSM. Perhatikan bahwa elemen <tag> tersebut tidak memiliki </tag> penutup. Hal ini disebabkan karena meraka tidak memiliki elemen lain yang terdapat di dalamnya, melainkan memiliki slash depan yang menandakan bahwa mereka tidak memerlukan tag penutup <tag...attributes/>

3. JOSM presets files

Seperti yang telah anda ketahui, JOSM telah dilengkapi dengan menu yang telah diatur sebelumnya, yang memiliki tipe menu pilihan geografis yang paling umum. Namun kadang, Anda ingin menambahkan menu tambahan untuk informasi spesifik yang ingin Anda kumpulkan. Anda dapat membuat menu Anda sendiri dengan menuliskannya dalam XML, kemudian memuatnya di dalam JOSM. Pertama, mari lihat bagaimana kita dapat memuat menu-menu tambahan ke dalam JOSM.

  1. Buka JOSM dan buka menu Preferensi dengan cara klik Edit ‣ Preferensi.

  2. Klik pada ikon ketiga dari atas yang tampilannya seperti ini:

../../../../_images/image922.png
  1. Klik pada tab ketiga yang bertuliskan Tagging Presets.

  2. Pilih Buildings by Kate Chapman dan klik pada anak panah kanan untuk menambahkannya pada Aktif Preset.

../../../../_images/image932.png
  1. Klik OK.

  2. Restart JOSM.
  3. Buat Layer baru dengan memilih Berkas ‣ Layer Baru.

  4. Buat suatu titik dan pastikan titik tersebut terpilih

  5. Pergi ke menu Presets. Sekarang Anda dapat melihat preset yang Anda tambahkan berada dibagian bawah.

../../../../_images/image952.png
  1. Klik Building untuk melihat form pengisian dari preset building.

../../../../_images/image942.png

Ketika kita menambahkan menu preset tersebut melalui menu preferensi, yang kita lakukan adalah menambahkan sebuah file XML yang menjelaskan bagaimana perilaku dari menu baru ini. Pada bagian berikutnya, kita akan mempelajari bagaimana membuat file preset XML kita sendiri yang dapat kita muat ke dalam JOSM.

4. A sample presets file

Untuk memahami bagaimana suatu file preset ditulis, pertama mari lihat pada XML pada salah satu preset pada JOSM yang telah tersedia. Ketika Anda pada menu Presets memilih Fasilitas → Budaya → Tempat Beribadah anda akan melihat form isian seperti berikut:

../../../../_images/image962.png

XML untuk form isian tersebut berbentuk seperti ini:

<item name="Place of Worship" icon="presets/church.*" type="node,closedway,relation">
   <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=place_of_worship" />
   <label text="Edit Place of Worship" />
   <key key="amenity" value="place_of_worship" />
   <text key="name" text="Name" default="" delete_if_empty="true" />
   <combo key="religion" text="Religion" values="bahai,buddhist,christian,hindu,jain,jewish,muslim,sikh,spiritualist,taoist,unitarian,zoroastrian" default="" delete_if_empty="true" />
   <combo key="denomination" text="Denomination" values="anglican,baptist,catholic,evangelical,jehovahs_witness,lutheran,methodist,mormon,orthodox,pentecostal,presbyterian,protestant,quaker,shia,sunni" default="" delete_if_empty="true" />
   <combo key="service_times" text="Service Times" values="Su 10:00,Su 10:30,Su 11:00" default="" delete_if_empty="true" />
   <combo key="opening_hours" text="Opening Hours for visiting" values="24/7,Mo-Fr 08:30-20:00,Tu-Su 08:00-15:00;Sa 08:00-12:00" default="" delete_if_empty="true" />
</item>

Mungkin hal ini terlihat rumit, tapi tidak sesulit seperti yang terlihat. Mari kita telusuri baris demi baris.

Baris pertama adalah tag pembuka untuk elemen utama kita <item>. Ada beberapa atribut yang mendeskripsikan elemen tersebut.

name=”Place of Worship”

Nama dari benda yang Anda buat.

icon=”presets/church.*”

Ikon dari objek tersebut. File PNG merupakan file yang paling efektif dalam OSM karena file tersebut dikompres menjadi grafik berwarna rendah dengan latar tembus pandang.

type=”node,closedway,relation”

Tipe dari objek yang dapat diberikan oleh menu preset ini. Node artinya objek ini dapat dinyatakan sebagai titik, way artinya dapat dinyatakan sebagai garis, closedway artinya dapat dinyatakan sebagai suatu bentuk tertutup atau polygon , dan relation berarti bahwa objek ini dapat diberlakukan kepada suatu hubungan, yaitu merupakan suatu tipe objek OSM yang belum kita bahas. Perhatikan bahwa garis bukan pilihan di sini, karena tempat ibadah tidak mungkin berupa garis, melainkan pasti berupa titik atau polygon.

Baris kedua menyediakan link ke halaman web wiki OpenStreetMap untuk tipe lokasi seperti ini.

<link href=”http://wiki.openstreetmap.org/wiki/Tag:amenity=place_of_worship” />

Baris ketiga memiliki tag <label> dan mendeskripsikan tulisan apa yang harus ditampilkan pada bagian atas dari form isian.

<label text=”Edit Tempat Beribadah” />

Baris keempat mendeskripsikan suatu tag yang akan secara otomatis diberlakukan pada objek ketika menu preset dipilih. Dalam kasus ini, kita ingin objek tersebut memiliki tag amenity=place_of_worship.

<key key=”amenity” value=”place_of_worship” />

Baris kelima mendeskripsikan hal pertama yang akan ditampilkan pada form isian kita, dan bagaimana membuat suatu tag ketika tag tersebut telah diisi. Tag nya adalah <text> yang menandakan bahwa form isian tersebut harus memiliki suatu kotak teks untuk diisi oleh pengguna. Atribut key=”name” mendeskripsikan key apa yang harus digunakan ketika tag tersebut telah dibuat. Nilainya akan berupa apapun yang telah dimasukkan oleh pengguna pada kotak teks. Atribut text=”Name” menyatakan apa yang seharusnya tertulis pada form di sebelah kotak teks. Atribut yang terakhir menunjukkan bahwa tidak ada tag yang harus dibuat jika kotak teks tidak diisi.

<text key=”name” text=”Name” default=”” delete_if_empty=”true” />

Baris berikutnya serupa, namun bukan berbentuk kotak teks, melainkan sebuah daftar pilihan dimana pengguna dapat memilih dari beberapa pilihan. Tag yang digunakan untuk ini adalah <combo>

Baris terakhir dari XML ini adalah tag penutup </item>

5. Creating your own presets file

Sekarang ikuti cara kita membuat file preset kita sendiri. Kita akan membuat sebuah contoh menu preset yang bisa membuat kita memberikan tag pada bangunan atau titik tergantung dari tipe fasilitas atau kegunaan yang dimiliki. Untuk itu, mari kita menciptakan beberapa tag baru:

Kunci

Nilai yang memungkinkan

 
utility:water well, municipal, yes, no

Apakah rumah tangga memiliki akses terhadap air/water? Well/sumur mengindikasikan rumah tangga memiliki akses terhadap air sumur. municipal mengindikasikan bahwa ada pipa-pipa yang menghubungkannya. Jika kita tidak mau mencantumkan banyak deskripsi, kita dapat memilih ‘yes’ (ya) atau ‘no’ (tidak) untuk mengindikasikan apakah bangunan tersebut memiliki akses terhadap air.

utility:electricity yes, no

Apakah rumah tangga tersebut memiliki akses terhadap listrik?

utility:phone landline, mobile, yes, no

Apakah rumah tangga tersebut memiliki akses komunikasi berupa telepon? Landline mengindikasikan bahwa ada jaringan telepon yang yang masuk ke rumah. Mobile mengindikasikan bahwa rumah tangga tersebut memiliki telepon seluler. Jika kita tidak dapat mencantumkan banyak deskripsi informasi, kita bisa menggunakan yes atau no saja.

utility:internet landline, mobile, yes, no

Seperti halnya value untuk telepon, ini akan mengindikasikan apakah rumah tangga tersebut memiliki akses internet.

Ketika preset yang kita buat telah dipilih kita dapat dengan otomatis menambahkan tag building=yes, dan kita akan membuat sebuah tag dengan key name yang dapat kita isi dengan menggunakan sebuah text box seperti gambar di bawah.

Sekarang coba lihat pada tag yang memungkinkan untuk kita gunakan dari tabel yang telah dijelaskan di atas. Apa cara terbaik untuk merepresentasikannya? Untuk name, kita mau membuat sebuah text box, karena kita dapat mengisinya dengan nama apapun yang kita inginkan untuk tag ini.

Untuk utility:water, utility:phone, dan utility:internet, terdapat empat value yang memungkinkan yang dapat kita pilih dari form kita, jadi cara terbaik untuk menambahkannya adalah dengan menggunakan combo box – yaitu sebuah menu dropdown yang bisa dipilih ke bawah seperti ini. Tag utility:electrical hanya memiliki dua value yang memungkinkan, yes atau no, jadi cara terbaik untuk menunjukkannya pada form adalah dengan menggunakan checkbox/lihat kotak kecil di samping tulisan Akses Listrik pada gambar di bawah, meskipun kita dapat menggunakan sebuah kotak pilihan pula jika kita inginkan. Ketika kita selesai membuatnya maka form akan tampak seperti ini:

../../../../_images/image972.png
  1. Buka sebuah editor text dan ikuti cara-cara berikutnya untuk membuat sebuah XML untuk preset ini. Sebuah editor yang sederhana dan banyak digunakan pada Windows adalah Notepad. JANGAN menggunakan sebuah word processing program seperti Microsoft Word.

../../../../_images/image982.png
  1. Pertama-tama, kita perlu membuat sebuah elemen utama/root element di dalam XML kita sehingga JOSM mengenali nya sebagai sebuah file preset.

../../../../_images/image992.png
  1. Berikutnya mari kita membuat sebuah elemen yang disebut <group>. Bagian ini sebenarnya tidak terlalu diperlukan karena kita hanya membuat satu preset, namun ini akan mendemonstrasikan bagaimana kita dapat membuat submenu dengan menggunakan banyak opsi berbeda pada menu preset yang kita miliki. Jangan lupa untuk menambahkan tag penutup </group> dan </presets> pada elemen Anda.

../../../../_images/image1002.png
  1. Sekarang kita dapat membuat sebuah item pada menu kita. Kita ingin membuat sebuah elemen <item> di dalam group elemen tersebut. Tambahkan text seperti berikut:

<item name="Household">

</item>
  1. Di dalam elemen <item> kita akan menambahkan text box, combo box, dan check box yang inginkan ke dalam form. Tambahkan text berikut ini ke dalam elemen <item> Anda:

<item name="Household">
        <key key="building" value="yes"/>
        <text key="name" text="Name" default="" delete_if_empty="true" />
        <combo key="utility:water" text="Water Access" values="well, municipal, yes, no" default="" delete_if_empty="true" />
        <check key="utility:electrical" text="Electricity Access" />
        <combo key="utility:phone" text="Phone Access" values="landline, mobile, yes, no" display_values="Landline Phone, Mobile Phone, Yes, No" />
        <combo key="utility:internet" text="Internet Access" values="landline, mobile, yes, no" display_values="Landline Access, Mobile Internet Access, Yes, No" />
</item>

Ketika Anda selesai, file Anda akan terlihat seperti ini:

../../../../_images/image1013.png

Banyak dari hal-hal berikut ini yang telah Anda lihat sebelumnya. Mari kita analisis. Di dalam elemen <item> kita telah membuat enam buah elemen baru:

  1. <key>
  2. <text>
  3. <combo>
  4. <check>
  5. <combo>
  6. <combo>

Bisakah Anda menyebutkan apa yang dapat dilakukan setiap elemen tersebut? Mereka membuat item-item berbeda pada form presets di JOSM. Baris pertama, <key key=”building” value=”yes”/>, tidak menampilkan apapun pada form, namun memberitahu JOSM untuk secara otomatis memberikan tag building=yes pada objek ketika preset ini dipilih.

Pada baris kedua, <text key=”name” text=”Nama” default=”” delete_if_empty=”true” />, membuat sebuah field text dengan key name, seperti yang kita saksikan ketika kita melihat pada preset XML di bagian sebelumnya.

Kita memiliki tiga elemen <combo> dan tiap elemen memiliki beberapa atribut. Key mengindikasikan bahwa key seharusnya dibuat untuk tag. Text mengindikasikan apa yang seharusnya ditampilkan pada form. Values merupakan value-value yang memungkinkan yang dapat kita pilih melalui dropdown box. Dan kita telah menambahkan sesuatu yang baru, yaitu atribut display_values, yang dapat menampilkan text berbeda pada dropdown box daripada value yang akan dibuat. Hal ini sangat berguna bila kita ingin form yang dibuat lebih bersifat deskriptif mengenai pilihan-pilihan yang dapat dipilih, atau jika kita mau value yang ditampilkan menggunakan bahasa selain Bahasa Inggris.

Terakhir, kita telah menambahkan satu elemen, sebuah checkbox. Kode yang digunakan cukup sederhana, <check key=”utility:electrical” text=”Akses Listrik” />. Kode tersebut akan membuat sebuah checkbox pada form kita. Ketika checkbox ini dipilih diberi tanda centang, JOSM akan menambahkan tag pada objek yang menandakan utility:electrical=yes.

  1. Akhirnya, mari kita simpan file XML sehingga kita dapat memasukkannya ke dalam JOSM. Pada Notepad, pilih File ‣ Simpan.

  2. Ketik Akses_Rumah_Tangga_Preset.xml sebagai nama file.

  3. Pada box yang mengatakan Save as type: pastikan Anda memilih All Files, karena kita tidak ingin menyimpan file sebagai dokumen teks, melainkan sebuah dokumen XML.

  4. Klik Simpan.

6. Try It!

Sekarang coba buka file preset tadi menggunakan JOSM dan lihat bagaimana tampilannya!

  1. Buka Preferensi pada JOSM dan pilih Tagging Presets, seperti yang telah Anda lakukan sebelumnya.

  2. Pada bagian kanan di sebelah Preset yang aktif, klik tombol +.

../../../../_images/image1022.png
  1. Ketik Preset Rumah Tangga pada kolom Nama.

  2. Di sebelah URL/File, buka file XML yang baru saja kita buat.

  3. Klik OK, dan OK lagi untuk menyimpan preferensi.

  4. Restart JOSM.
  5. Buat sebuah layer baru dan tambahkan sebuah titik.

  6. Pergi ke menu Presets. Anda sekarang akan dapat melihat menu yang baru saja Anda buat!

../../../../_images/image1032.png

Modul selanjutnya –>