Sunday, 2 November 2014

Promosi Kursus ArcGIS Untuk Pelajar

Tawaran kursus ArcGIS Desktop pada harga diskaun untuk student ipta/ipts.. Maybe u all ada daftar subjek GIS or belajar ArcGIS semester ni dan nak tips or pengetahuan lebih lanjut, bolehlah rujuk iklan di bawah ..


Kalau harga komersil, memang jauh beza dengan harga yang ditawarkan ni. Silibusnya saya ambil dari standard silibus yang biasa saya ajar dalam kelas-kelas saya yang lain, cuma ada beberapa topik yang saya ringkaskan.

Saturday, 1 November 2014

Tips ArcGIS : Mengatur Susunan Nama Field/Column

Untuk topik kali ni, saya akan kongsikan satu tip yang saya rasa mungkin anda semua selalu hadapi masalah ni kot. Pernah tak anda ada table dalam shapefile atau geodatabase yang mempunyai banyak fieldname dan anda nak atur semula susunan field tu.. contoh anda add nama field baru, tapi anda nak letak field tu pada kedudukan pertama, field kedua nak letak kat last dan seumpamanya... mcm contoh saya tunjukkan di bawah ni..



Selalunya, dulu-dulu, apa yang saya akan buat ialah, kalau rekod atau feature dah ada dalam data tu, saya akan create semula layer atau table baru bersama susunan field yang saya nak, kemudian saya load semula data tu...sebabnya, ArcGIS takde option untuk kita susun semula kedudukan field kalau fieldname tu dah wujud dalam table kita. Tapi baru-baru ni, saya jumpa satu cara yang mudah.. tak payah create semula pun struktur table. Tapi syaratnya, anda perlu kena ada Microsoft ACCESS dulu dalam komputer anda. Sekiranya Miscrosoft Office anda ada include sekali ACCESS, bolehlah anda guna cara ni.

OK... kemudian anda kena pastikan data anda tu mesti dalam format Personal Geodatabase. Kalau data anda dalam shapefile atau File Geodatabase, anda kena convert dulu ke Personal Geodatabase. Kalau shapefile, guna je tool Import dalam Catalog.. kalau File Geodatabase pula, lagi senang, Copy Paste je ke dalam Personal Geodatabase. Kenapa kena guna Personal Geodatabase? Sebab Personal Geodatabase ni struktur data dia dalam format MDB file, iaitu ACCESS format. Kalau nak info serba sedikit tentang format-format geodatabase dan macamana nak create Personal Geodatabase, boleh rujuk post saya sebelum ni di link sini.

Once anda dah ada Personal Geodatabase, kalau data anda shapefile, gunakan Import seperti di bawah :-



Penerangan Gambar :-
  1. Right click Personal Geodatabase dan pilih Import
  2. Pilih Feature Class (single)...
  3. Pilih shapefile yang nak dimasukkan ke dalam geodatabase
  4. Namakan output feature class (akan menjadi layer baru di dalam geodatabase)
  5. Klik OK.


Kalau data anda dalam File Geodatabase pula, guna kaedah Copy/Paste seperti di bawah :-



Penerangan Gambar :-
  1. Right click data di dalam File Geodatabase yang nak dipindahkan ke dalam Personal Geodatabase dan pilih Copy.
  2. Right click Personal Geodatabase dan pilih Paste.
  3. Dialog Data Transfer akan dipaparkan. Klik OK.  


OK..sekarang ni data saya dah pun berada dalam Personal Geodatabase. Bila saya buka table dalam Personal Geodatabase tu, saya dapati field FEATURE_CODE yang baru saya create berada pada kedudukan column terakhir seperti gambar di bawah.

Contoh susunan field FEATURE_CODE berada pada column terakhir


Dalam contoh ni, saya nak standardkan supaya semua field FEATURE_CODE yang saya create berada pada kedudukan column pertama selepas field OBJECTID. Caranya mudah saja. Buka Windows Explorer atau program My Computer dan masuk ke folder di mana anda simpan Personal Geodatabase anda. Kalau dalam komputer anda dah ada Microsoft ACCESS, anda akan nampak Personal Geodatabase anda dipaparkan sebagai icon ACCESS seperti di bawah ni ..

Personal Geodatabase dipaparkan sebagai icon ACCESS
dalam Window Explorer

Seterusnya, double click Personal Geodatabase yang dipaparkan untuk membuka program ACCESS. Sekiranya anda dapat mesej seperti di bawah, maknanya database anda lock dan anda perlu close dulu program ArcCatalog atau ArcMap anda. Kemudian, buka kembali Personal Geodatabase tadi.

Mesej Database lock


Bila anda buka saja Personal Geodatabase anda tadi melalui Microsoft ACCES, anda akan melihat paparan data anda seperti di bawah :-

Paparan ACCESS bersama data dalam Personal Geodatabase

Seperti yang dapat anda lihat dalam gambar di atas, nama data yang telah saya masukkan ke dalam Personal Geodatabase saya tu ialah Lot_Cassini. Cuma bila saya buka di dalam ACCESS, saya hanya nampak iconnya sebagai Table walaupun sebenarnya data tu ialah layer lot. Seterusnya, untuk saya susun kedudukan fieldname FEATURE_CODE di dalam layer lot saya tu, saya akan buat step seperti di bawah :-



Penerangan Gambar :-
  1. Dalam ACCESS, right click nama layer atau table yang handak anda susun kedudukan field.
  2. Pilih Design View
  3. Gerakkan cursor mouse anda pada field yang hendak diubah kedudukan. Bila icon cursor mouse anda berubah seperti di dalam gambar, klik fieldname tu dan drag untuk ubah kedudukan.
  4. Posisikan ke kedudukan mana anda nak selitkan fieldname tu. Dalam contoh ni, saya nak selitkan antara kedudukan OBJECTID dan NEGERI.
  5. Setelah saya release mouse click, field FEATURE_CODE saya akan diletakkan di posisi yang saya kehendaki.


Kemudian klik button Save pada Miscrosoft ACCESS anda dan exit program ACCESS. Check semula data anda tu dalam ArcCatalog atau buka table data anda tu dalam ArcMap. Anda akan dapati kedudukan susunan fieldname anda dah berubah ke kedudukan yang anda setkan di dalam ACCESS tadi.


Susunan field FEATURE_CODE berubah selepas
kedudukan field OBJECTID

So.. tak payah le nak pening-pening kepala lagi lepas ni nak susun field kalau tersilap susun. Dan yang bagusnya cara ni juga akan carry sekali setting Domain dan Subtype anda sekiranya data asal anda tu ada Domain dan Subtype.


Selamat mencuba.

Wednesday, 22 October 2014

Editor Tracking - Mengenalpasti Siapakah dan Bilakah Tarikh/Masa Data Dikemaskini

Kali ni saya akan share dengan u all satu topik yang agak menarik dan mungkin amat berguna untuk digunakan dalam kerja seharian anda. 

Senario

"Siapa yang digit lot ni ye? Jalan ni bila masa dikemaskini ye?" Hmmmm... Sekiranya anda menguruskan transaksi data yang besar, contohnya lot gunatanah atau road network kawasan bandar, pernahkah timbul persoalan time bilakah sesuatu lot atau jalanraya tu diupdate, dan   sekiranya ramai editor yang terlibat dalam proses pengemaskinian, siapakah yang update sesuatu lot atau jalanraya tersebut??


Bagaimana anda nak track atau log proses editing yang berlaku di dalam data anda tu? Jawapannya ialah dengan menggunakan editor tracking di dalam geodatabase. Bila anda enable saja editor tracking pada data anda di dalam geodatabase ni, setiap perubahan edit yang berlaku pada data tu akan di log dan direkodkan di dalam field yang anda tentukan. Maklumat yang direkodkan melibatkan siapa yang edit dan bilakah tarikh dan masa proses edit itu berlaku. Contoh seperti gambar di bawah ni, setiap lot tu saya boleh tahu siapa yang edit dan bilakah tarikh dan masa diedit.



So macamana nak enable editor tracking ni dalam data anda? Mudah je, sesimple right click atau boleh guna juga tool di dalam Arctoolbox.

Enable Editor Tracking - Cara 1

Ni cara yang paling simple. Lakukan seperti step di bawah :-



Penerangan gambar :-
  1. Dalam ArcCatalog atau Catalog window, right click pada data dan pilih Manage
  2. Pilih Enable Editor Tracking...
  3. Dialog akan dipaparkan menyatakan 4 field akan dibina di dalam data anda iaitu created_user, created_date, last_edited_user dan last_edited_date. Klik Yes.
  4. Dialog pengesahan akan dipaparkan menyatakan editor tracking telah berjaya diset di dalam data anda. Klik OK.


Apabila anda buka properties pada data anda tadi, anda akan melihat ruangan tab Editor Tracking seperti di bawah:-



Step ni ada limitation sikit, seperti yang anda lihat, 4 field default yang dibina akan dinamakan sebagai created_user, created_date, last_edited_user dan last_edited_date.

created_user : siapa user yang mula-mula create feature
created_date : bila tarikh dan masa feature tu mula dicreate
last_edited_user : siapa user yang terakhir kemaskini feature
last_edited_date : bila tarikh dan masa terakhir feature tu dikemaskini

Kalau anda gunakan step ni, anda tak boleh ubah nama-nama field tu... dan step ni juga akan rekod tarikh dan masa dalam format UTC (Coordinated Universal Time). Sekiranya lokasi kerja-kerja editing anda hanya melibatkan time zone yang sama, contohnya anda kerja kat Malaysia je, takde nak replicate data ke oversea, ataupun data anda tidak dipublish sebagai feature service di dalam ArcGIS for Server, better anda guna Database Time Zone saja sebab format UTC ni kadang-kadang agak mengelirukan.

Enable Editor Tracking - Cara 2

Cara ni agak lebih fleksible. Anda boleh tentukan nama field anda sendiri dan boleh pilih samada nak guna format tarikh/masa dalam UTC atau Database Time. Caranya seperti di bawah :-



Penerangan gambar :-
  1. Dalam Arctoolbox, klik Data Management Tools > Fields > Enable Editor Tracking
  2. Pilih data yang anda nak set editor tracking.. mesti data geodatabase tau... shapefile cannot.
  3. Taip nama field untuk simpan user yang mula-mula create feature.
  4. Taip nama field untuk simpan tarikh/masa
  5. Taip nama field untuk simpan user yang terakhir kemaskini
  6. Taip nama field untuk simpan tarikh/masa terakhir kemaskini
  7. Klik checkbox Add fields if they don't exist (optional)
  8. Pilih DATABASE_TIME
  9. Klik OK


Di dalam contoh di atas, saya telah create 4 custom field untuk editor tracking iaitu Pengguna_Bina (macam lawak la plak nama field ni bila translate), Tarikh_Bina, Pengguna_Kemaskini dan Tarikh_Kemaskini manakala format tarikh/masa pula saya gunakan database_time.

Penggunaan Editor Tracking

Cuba lihat contoh data lot di bawah. Setiap lot yang saya klik menggunakan tool Identify akan memaparkan maklumat pengguna dan tarikh dikemaskini.



Sekiranya anda menggunakan personal atau file geodatabase, nama pengguna tu akan direkod mengikut Windows Login Name. Untuk ArcSDE Geodatabase pula, anda boleh pilih samada menggunakan Windows Login ataupun database login.

Sekarang lihat pula perubahan yang berlaku pada attribut apabila saya kemaskini lot terbabit. Contohnya saya pecah lot kepada dua bahagian. Perhatikan perbezaan attribut diruangan field Tarikh_Bina dan Tarikh_Kemaskini seperti di bawah ni :-



Maklumat di atas menunjukkan lot terlibat didigit bertarikh 16/9/2014 dan proses edit pecah lot berlaku pada tarikh 22/10/2014. Menarik kan? Maknanya saya boleh tahu bila tarikh dan masa proses edit berlaku dalam setiap lot dan siapa yang edit lot tu. Tapi perlu diingat, tracking editor hanya boleh track tarikh/masa TERAKHIR edit setiap feature dan bukannya track setiap tarikh berlaku perubahan edit dalam feature yang sama. Contohnya jika saya cantum kembali lot tu pada tarikh 23/10/2014, maklumat yang direkod pada Tarikh_Kemaskini hanya maklumat tarikh cantum, jadi saya tidak tahu history lot tu sebenarnya pernah berlaku proses pecah lot pada 22/10/2014. Sekiranya keperluan anda untuk track every changes yang berlaku dalam proses edit, mungkin kena guna teknologi Versioning dalam ArcSDE Geodatabase sebab Versioning boleh handle historical data.

Satu lagi yang menarik bila data anda ada maklumat tarikh/masa dalam setiap feature ni, of coz anda boleh buat query based on tarikh/masa. Contohnya saya nak kenalpasti lot yang dikemaskini selepas bulan September 2014.. jadi saya buat je query seperti di bawah :-




Try ler....

Wednesday, 15 October 2014

18th ESRI Malaysia User Conference

Sempat gak luangkan masa singgah di ESRI Malaysia User Conference kali ke 18 ni. Tema kali ni "GIS Creating Our Feature". Seperti biasa, lokasi kejadian di PICC. Dapatlah berjumpa dengan gang2 GIS seantero Malaya ni dan bertukar-tukar idea dan gossip-gossip terkini...kehkeh... Di sini saya sharekan beberapa gambar sewaktu berlangsung conference ni. Kalau nak layan lebih banyak gambar lagi, sila melawat page FB SukaGIS di link ni...

Gang JAS.. don't play2 haa...




Tuan blog pun nak gak bergambo...

Perbadanan Air Pahang and MaCGDI

ESRI Team

ALAMI and ESRI

Testing PAIP Online Services


Nama sama, rupa tak sama...hehe

JUPEM

JPS and PLUS

PLUS and JUPEM Sabah


Bos-bos MaCGDI


Sesi ramah mesra..hihi

PEGIS

Diskusi

Wednesday, 8 October 2014

Memapar Attribut Menggunakan Teknik Labeling Expression

Rasanya otai-otai GIS semua tahu labeling adalah satu kaedah untuk memaparkan attribut di atas peta GIS kita. Kebiasaannya kita paparkan attribut ni bila nak design map untuk print, contoh nak letak nama tempat, nama jalan, nama sungai dan lain-lain. Cara paling basic nak buat labeling dalam ArcMap adalah macam step di bawah ni :-



Penerangan gambar :-
  1. Dalam Table of Contents, right click layer yang nak dipaparkan label.
  2. Pilih Properties...
  3. Klik tab Labels, kemudian check Label features in this layer
  4. Pada ruangan Label Field:, pilih field yang menyimpan attribut untuk dilabelkan.
  5. Klik OK.


Di dalam contoh ni, saya memaparkan label attribut nama jalan. Hasilnya adalah seperti di bawah ni..



OK, itu adalah kaedah paling basic untuk label attribut dalam ArcMap. Tapi sebenarnya dalam ArcMap ni, ada beberapa kaedah yang lebih advance yang boleh kita gunakan untuk paparkan attribut. Mungkin ada beberapa kes dimana kita nak paparkan attribut yang tak boleh dihandle menggunakan kaedah basic. Contohnya katakan saya nak labelkan nama jalan hanya untuk jalan yang panjangnya kurang dari 500m sahaja. Di sini saya boleh gunakan kaedah yang dinamakan Labeling Expression.

Untuk gunakan Labeling Expression ni, kita kena ada basic serba sikit tentang programming script, sebabnya...kita kena tulis script dalam ruangan Labeling Expression tu. Terdapat tiga programming script yang Labeling Expression ni support iaitu Java Script, Python Script dan VB Script. So kita pilih lah mana-mana coding script yang kita familiar dan selesa.

Contoh dialog Label Expression


OK..berbalik pada problem tadi. Macamana saya nak tulis coding script untuk paparkan nama jalan yang panjangnya kurang dari 500m tadi. Di dalam table layer jalan saya, nama jalan disimpan di dalam field NAM manakala info panjang setiap line jalan terdapat di dalam field SHAPE_Length. Mula-mula buat step ni dulu :-



Penerangan gambar :-
  1. Pada tab Labels dalam dialog Layer Properties, klik butang Expression...
  2. Pada dialog Label Expression, check kotak Advanced.
  3. Anda akan lihat default script dipapar di ruangan programming script.


OK, sekarang gantikan script di dalam ruangan programming script tu dengan VB script di bawah ni (copy paste jer...)

Function FindLabel ( [NAM],[SHAPE_Length] )
    if [SHAPE_Length] < 500 then
  FindLabel = [NAM]
    end if
End Function

Ruangan programming script dalam dialog Label Expression anda sepatutnya akan kelihatan seperti di bawah ni :-


Klik OK dan lihat hasilnya. Anda akan lihat nama jalan yang dipaparkan akan berkurangan kerana hanya nama jalan yang panjang jalannya kurang dari 500m sahaja dilabelkan (mcm biasa, klik kat gambar kalau kurang clear).

Perbandingan jumlah label sebelum dan selepas menggunakan
script Labeling Expression

Kalau anda sifu dalam programming, sebenarnya banyak lagi yang anda boleh buat dengan menggunakan kaedah Labeling Expression ni. Contohnya saya boleh paparkan label teks "JALAN BANDONG" dalam map tu sebagai "Jln Bandong" tanpa saya perlu edit attribut di dalam table layer jalan saya. Di sini saya share contoh script macamana nak buat tu. Script ni pun saya download dari ESRI forum je dan modify sikit-sikit ...

Function FindLabel ( [NAM],[SHAPE_Length] )
    FindLabel = PCase([NAM])
End Function

Function PCase(strInput)
 
Dim iPosition
Dim iSpace
Dim strOutput
iPosition = 1
Do While InStr(iPosition, strInput, " ", 1) <> 0
    iSpace = InStr(iPosition, strInput, " ", 1)
    strOutput = strOutput & UCase(Mid(strInput, iPosition, 1))
    strOutput = strOutput & LCase(Mid(strInput, iPosition + 1, iSpace - iPosition))
    iPosition = iSpace + 1
 Loop
 strOutput = strOutput & UCase(Mid(strInput, iPosition, 1))
 strOutput = strOutput & LCase(Mid(strInput, iPosition + 1))

 totalLen = Len(strOutput)

 if Left(strOutput,5) = "Jalan" then
         str = "Jln"
         nam = str & Right (strOutput, totalLen - 5)
         PCase = nam
 elseif Left(strOutput,6) = "Lorong" then
         str = "Lrg"
         nam = str & Right (strOutput, totalLen - 6)
         PCase = nam
 end if

End Function

Seperti biasa copy script tu dan paste masuk dalam ruangan programming script seperti step sebelum ni. Anda akan dapat hasilnya seperti di bawah pula. Jika sebelum ni label nama-nama jalan semuanya dipaparkan sebagai Uppercase, sekarang ia dipaparkan dengan kombinasi Uppercase dan Lowercase.



Kalau anda tak expert dalam programming tapi tau serba sikit macamana nak ubah coding, google je..kadang-kadang ada sample script yang otai di luar sana dah develop yang kita boleh adjust sikit untuk fit dengan keperluan kita.

Selamat mencuba.

Tuesday, 7 October 2014

Apakah on-the-fly Projection??

Mungkin anda pernah dengar word ni.. on-the-fly projection?? Tapi fahamkah anda konsep on-the-fly projection ni? OK.. dlm bahasa mudahnya, on-the-fly projection ni bermaksud keupayaan sesuatu software GIS tu memaparkan (overlay) layer-layer dalam sistem koordinat yg berbeza tanpa perlu mengubah sistem koordinat asal layer tersebut.  Contohnya, katakan anda sedang memaparkan data worldmap dalam sistem WGS84 dan anda ingin overlay data MRSO anda di atas data worldmap tu. Sekiranya software yang anda gunakan support on-the-fly projection, anda tak perlu pening-pening nak tukar data MRSO  tu kepada WGS84, tapi anda boleh direct overlay data tu di atas data WGS84. Itulah kelebihan on-the-fly projection.

on-the-fly projection membolehkan data berbeza sistem koordinat
dipapar tanpa perlu mengubah sistem koordinat pada data


Sekiranya software yang anda gunakan tak support on-the-fly projection, anda perlu seragamkan dulu data-data yang nak dioverlay kepada satu sistem koordinat yang sama. Contohnya dalam kes overlay MRSO kepada WGS84 tadi, anda perlu project data anda dari MRSO kepada WGS84 ataupun anda project data worldmap WGS84 tu kepada MRSO.. objektifnya untuk mendapatkan sistem koordinat yang sama untuk semua layer sebelum dioverlaykan.. tapi ni semua tak perlu anda lakukan kalau menggunakan konsep on-the-fly projection.


Tanpa on-the-fly projection, sistem koordinat antara data perlu
diseragamkan untuk overlay


OK.. clear dah konsep on-the-fly projection? Sekarang saya akan terangkan pula bagaimana ArcGIS handle on-the-fly projection ni. Untuk software lain saya kurang arif camne. Cuba lihat flow step gambar di bawah ni :-



Penerangan gambar :-
  1. Start new ArcMap document
  2. Contoh data pertama yang dimasukkan ke dalam ArcMap ialah data MRSO
  3. ArcMap akan automatik set dataframe sebagai MRSO (mengikut setting coord system data yang mula2 dimasukkan)
  4. Proses on-the-fly projection akan berlaku sekiranya data seterusnya dimasukkan mempunyai koordinat sistem yang berbeza dgn setting sistem koordinat dataframe.


Dalam ArcGIS Desktop, on-the-fly projection ni berlaku apabila anda view data anda dalam ArcMap. Sekiranya data yang dimasukkan berlainan sistem koordinat dengan sistem koordinat dataframe, ArcMap akan automatik lakukan on-the-fly projection untuk membolehkan data2 ni dioverlay. Seperti contoh gambarajah di atas, data yang mula2 dimasukkan adalah MRSO, bermaksud setting sistem koordinat DataFrame Arcmap automatik akan menjadi MRSO. Jadi, sebarang analisis yang anda lakukan, cthnya pengiraan keluasan, jarak dll semuanya adalah di dalam MRSO meter. Sekiranya next data yang anda masukkan mempunyai sistem koordinat berbeza, cth Cassini, GDM, WGS84, data-data ni akan diconvert secara on-the-fly untuk tujuan paparan supaya boleh fit dengan data MRSO tu. Tapi sebenarnya data tu masih lagi dalam projection asal Cassini, GDM, WGS84 dll. Jangan silap faham, ArcMap tak ubah pun sistem koordinat data tu, dia cuma convert on-the-fly supaya data tu boleh dioverlay dan fit ke dalam extent MRSO tadi.

Itulah sebenarnya kelebihan konsep on-the-fly projection ni. Maksudnya anda dah save 1 step bila nak overlay data yang berbeza koordinat sistem, tak perlu run command PROJECT untuk seragamkan dan tukar sistem koordinat, semua proses tu software yang handle. Tapi sebenarnya ada syarat untuk membolehkan on-the-fly projection ni berlaku. Syaratnya, kesemua data layer anda tu mestilah anda define sistem koordinat dia dengan betul, tak boleh ada kes data yang Unknown Coordinate System.

Macamana pula data kita boleh jadi Unknown Coordinate System? Kes ni selalunya berlaku selepas proses data convertion.. contoh dari AutoCAD, MapInfo ataupun mungkin data yang kita perolehi dari sumber2 yang kita kurang jelas bagaimana data tu dibina. Macamana pula nak tau samada data anda tu Unknown Coordinate System atau tak? Anda boleh lakukan seperti step kat bawah ni untuk semak :-



Penerangan gambar :-
  1. Right click layer yang anda nak check dalam Catalog
  2. Pilih Properties
  3. Klik tab XY Coordinate System
  4. Semak kat ruangan Current Coordinate System. Kalau dia tulis <Unknown> tu, maknanya anda kena set le kepada coordinate system yang sepatutnya.


OK, apa akan jadi kalau anda overlay data yang mempunyai sistem koordinat yang berbeza, tapi kedua-duanya atau salah satu darinya mempunyai Unknown Coordinate System. Data anda takkan boleh fit antara satu sama lain, kemungkinan lari terlalu jauh,.. seperti contoh di bawah ni.. dimana saya overlay data WGS84 dan MRSO, tetapi dalam kes ni, data MRSO ni adalah Unknown.

Data berbeza sistem koordinat terletak pada posisi berbeza bila
overlay sekiranya terdapat data yang Unknown Coordinat System


Anda akan dapati data worldmap WGS84 tu jadi terlalu kecil kalau dibandingkan dengan data MRSO bila kita overlay dan kedudukannya lari terlalu jauh. Kenapa boleh jadi begitu?? Logiknya sebab julat koordinat WGS84 terlalu kecil (-180 < X < 180) kalau dibandingkan dengan julat koordinat MRSO.

Cuba lihat julat koordinat X untuk sistem koordinat WGS84 area Semenanjung di bawah ni :-



Sekarang lihat pula julat koordinat X MRSO area Semenanjung :-



So, anda dah nampak kan perbezaan julat koordinat X yang ketara antara sistem WGS84 dan MRSO untuk area Semenanjung. Jadi secara logiknya kalau ruang koordinat ni kita letakkan dalam ruang posisi paksi XY, memang kedudukannya akan jauh lari seperti gambaran di bawah ni.

Gambaran perbandingan julat koordinat X antara
sistem koordinat WGS84 dan MRSO


Tapi macamana pula kadangkala bila kita overlay, walaupun julat koordinatnya jauh berbeza, disebabkan sistem koordinat berbeza,.. tapi kedua2 data tu boleh fit, walaupun secara logiknya takkan boleh fit pada kedudukan yang sama? Jawapannya disebabkan on-the-fly projection tu ler... tapi dengan bersyarat data tak boleh ada Unknown Coordinate System.. mesti properly define menggunakan source koordinat sepatutnya.

So dah faham kan konsep on-the-fly projection??