RSS

Create Text Objects dari Data Tabular (Labelling Trick Part I)

31 Jul

Terkadang labelling menjadi problem tersendiri bagi user MapInfo. Labelling di MapInfo menampilkan label dari data tabular atau atribut pada kolom tertentu atau bisa juga gabungan dari beberapa kolom dengan menggunakan formula tertentu. Untuk kebutuhan tertentu, user terkadang menginginkan data tabular yang digunakan sebagai label dikonversi menjadi layer terpisah (layer baru) dalam bentuk text object. MapInfo mempunyai sebuah tool yaitu LABELER.MBX (dapat diaktifkan dari Tool Manager) untuk mengubah dari label suatu layer menjadi layer baru dalam bentuk text object (secara detil dapat dibaca disini). Akan tetapi, tool ini mempunyai kelemahan yaitu label yang dikonversi hanya label yang sifatnya visible pada Current Map Window yang bersangkutan, jadi tidak semua label dari keseluruhan record pada layer tersebut akan dikonversi menjadi layer baru, padahal petanya luas (dimana tidak semua cakupan peta dapat ditampilkan dalam satu Map Window pada skala zooming tertentu).

Untuk mengatasi hal ini, salah satu trik yang dapat dicoba adalah dengan mengkonversi data tabular / atribut menjadi text object terhadap keseluruhan jumlah record. Kelemahan dari metode ini, kenampakan peta dari layer baru text object akan tampak tumpang tindih dan terlihat ribet apabila petanya luas. Kebutuhan seperti ini biasanya diaplikasikan pada peta jalan. Contoh map yang digunakan sebagai sample pada tahapan berikut ini adalah peta jalan.

  • Buka Peta Jalan.TAB atau peta yang lain :

 

  • Data tabular atau atribut yang akan digunakan untuk labeling adalah kolom Street_Name :

 

  • File > Save Copy As layer tersebut menjadi layer baru (misal: Jalan1.TAB) yang akan diubah dari object polyline ke text.
  • Buka Jalan1.TAB.
  • Tambahkan kolom X dan Y pada Jalan1.TAB melalui Table > Maintenance > Table Structure > Add Field > Name : X ; Type : Float > Add Field > Name : Y ; Type : Float. Tujuannya adalah untuk diisi koordinat Centroid X dan Y dari masing-masing object polyline jalan tersebut.

 

  • Isi kolom X dan Y melalui menu Table > Update Column > setting seperti screenshot berikut ini :

 

 

  • Hasilnya :

 

  • Selanjutnya lakukan create object dari data tabular ke text object dengan menggunakan formula berikut pada MapBasic Window :

Update my_table set obj = createtext(window_id, x, y, text, angle, anchor, offset)

Keterangan :

  1. Window_id adalah nilai interger window identifier yang merepresentasikan Map Window. Dapat diganti dengan frontwindow() jika text berada pada window yang sedang aktif.
  2. X, Y adalah nilai float yang merepresentasikan lokasi koordinat X dan Y dimana text akan diletakkan.
  3. Text adalah nilai string yang merepresentasikan text yang digunakan untuk membuat text object.
  4. Angle adalah nilai float yang merepresentasikan sudut rotasi, untuk text arah horizontal menggunakan nilai zero (0).
  5. Anchor adalah nilai interger dari 0 sampai 8, yang mengontrol bagaimana text ditempatkan relative pada lokasi anchor (titik ikat) yaitu apakah pada Bottom, Center, Right, atau Left. Untuk lebih jelas dapat dilihat pada help-nya MapBasic.
  6. Offset adalah nilai interger dari 0 sampai 200, yang merepresentasikan jarak text yaitu offset dari lokasi titik ikat. Offset akan diabaikan jika nilai Anchor = 0.

Nilai X, Y, dan Text dapat diganti dengan kolom yang berisi data yang sesuai. Tujuan pembuatan kolom X dan Y pada langkah sebelumnya adalah untuk mengisi formula ini, dimana lokasi text object akan diletakkan pada centroid masing-masing polyline. Sedangkan text akan diisi dengan kolom yang berisi nama jalan. Untuk angle, anchor, offset, akan saya isi dengan nilai 0, sehingga text object yang dibentuk nanti hasilnya akan horizontal.

Penjelasan dalam versi lain mengenai operasional formula ini dapat dibaca disini. Personally thanks to Jacques Paris for sharing this helpful link to be learnt by every MIPro user, really much appreciate it. Good job!🙂

  • Pastikan Map Window dari Jalan1.TAB dalam posisi aktif.
  • Options > Show MapBasic Window > ketikkan seperti berikut :

 

  • Hasilnya adalah Jalan1.TAB berubah objectnya dari polyline menjadi text sbb :

 

Note : Ukuran font pada text objects tersebut bersifat dinamis, yaitu jika Map Window di zoom kecil maka font akan mengecil dan sebaliknya. Ukuran font dapat diatur sendiri, kelemahannya jika diubah sizenya, kadang jadi bergeser agak jauh dari jalan yang dimaksud. Selanjutnya bisa diatur-atur sendiri sesuai kebutuhan.

  • Layer Jalan1.TAB yang berisi label text object tersebut dapat dioverlaykan dengan Jalan.TAB :

 

P.S. Jika ada pengguna Encom Discover, hasil yang sama dapat dilakukan melalui menu Discover > Map Making > Label Creator.

F

 
Leave a comment

Posted by on 31 July 2012 in MapInfo

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: