PHP Mapscript Framework Solusi Praktis Untuk Sistem Informasi Geografis Yudhi Kurniawan1* 1Fakultas
Sains Dan Teknologi, Universitas Ma Chung, Malang *E-mail :
[email protected]
ABSTRAK Sistem Informasi mempunyai fungsi untuk mengolah data menjadi informasi yang berguna bagi stakeholder yang membutuhkan, informasi yang di sajikan tidak selalu dalam bentuk data tabular melainkan bisa berbentuk data visual seperti grafik, peta, multimedia atau juga yang lainnya. Dalam paper ini akan di kaji lebih dalam tentang metode dan penggunaan framework phpmapscript sebagai salah satu metode yang digunakan untuk membangun Sistem Informasi Geografis berbasis web dengan tujuan merepresentasikan data – data spasial untuk menghasilkan informasi yang berbasis geografis secara rieltime dan akurat serta mudah di akses dimana saja. Key Words : Sistem Informasi, Grafik, Peta, Data Spasial, Framework, PHPMapscript.
1. PENDAHULUAN GIS adalah Sistem Informasi Geografis, yang menggabungkan antara perangkat keras (hardware), Perangkat Lunak (Software), dan data untuk kegiatan input data, penyimpanan data, integrasi data yang dapat di ubah dan dianalisa serta di bagikan serta diatur dan ditampilkan secara geografis (Chang 2008).
Dengan tujuan utama adalah ntuk mempermudah pengambilan keputusan dari identifikasi data yang direkam dari sebuah lokasi tertentu sesuai dengan kebutuhan yang sudah didefinisikan. Dengan GIS user dapat melihat secara luas, memahami dan menginterprestasikan data dalam berbagi hubungan dan pola, dalam sebuah visualisasi data berupa peta, laporan dan juga bisa dilengkapi dengan grafik sebagai bentuk lain untuk memudahkan pemahaman dan pengambilan keputusan .
Gambar 1 : Komponen GIS
2. APLIKASI MAP SERVER Mapserver merupakan aplikasi freeware dan opensource yang meungkinkan kita menampilkan data spasial (peta) dalam platform web (Ruslan 2005). Aplikasi ini pertama kali dikembangkan oleh Universitas Minesota, Amerika Serikat untuk proyek For Net (sebuah proyek untuk sumber daya alam ) yang disponsori oleh NASA (National Aeronautics and Space Administration). Support NASA dilanjutkan dan dikembangkan proyek TerraSIP untuk manajemen data lahan. Saat ini karena sifatnya yang terbuka (open source), pengembangan mapserver dilakukan oleh pengembang dari berbagai Negara
Pada bentuk paling dasar, MapServer berupa sebuah program CGI (Common Gateway Interface). Program tersebut di eksekusi pada sebuah webserver dengan konfigurasi peta yang disimpan dalam sebuah file *.MAP, kemudian kirim dan ditampilkan oleh webbrowser baik dalam bentuk gambar peta atau bentuk yang lain.
Gambar 2 : Ilustrasi Aplikasi MapServer Request And View process 2.1 Fitur MapServer Ada beberapa fitur utama yang ada dalam mapserver untuk mendukung fungsi sebagai server GIS berbasis web antara lain adalah : Menampilkan data spasial dalam format vector seperti : Shapefile (ESRI), ArcSDE (ESRI), PostGis dan berbagai format data vector lain dengan dukungan penggunaan library OGR. Menampilkan data spasial dalam format raster seperti TIFF/GeoTIFF, EPPL7 dan berbagai format data raster lain dengan menggunakan library GDAL. Menggunakan Quadtree dalam indexing data spasial, sehingga operasi-operasi spasial dapat dilakukan dengan cepat. Dapat dikembangkan, dengan tampilan keluaran yang dapat diatur menggunakan filefile template.
Dapat melakukan seleksi obyek berdasar nilai, titik, area, atau berdasar sebuah obyek spesial tertentu. Mendukung rendering karakter berupa font TrueType. Mendukung penggunaan data raster maupun vector dengan mode tiled (dibagi – bagi menjadi sub bagian yang lebih kecil sehingga proses untuk mengambil data dan menampilkan dapat dipercepat). Dapat menggambarkan elemen peta secara otomatis, skala grafis, peta indeks dan legenda peta. Dapat menggambarkan peta tematik yang dibangun menggunakan ekspresi lojik maupun ekspresi regular. Dapat menampilkan label dari objek spasial, dengan label dapat diatur sedemikian rupa sehingga tidak saling tumpang tindih. Konfigurasi dapat diatur secara on the fly melalui parameter yang ditentukan pada URL. Dapat menangani beragam sistem proyeksi dalam jaringan internet. 2.2 Arsitektur MapServer Secara umum model arsitektur yang digunakan oleh mapserver dapat di gambarkan sebagai berikut
Gambar 3 : Arsitektur Aplikasi Peta berbasis Web
Pola interaksi yang digunakan antara klien dan server berdasarkan skenario request dan respon. Web browser di sisi klien mengirim request ke server web. Karena server web tidak memiliki kemampuan untuk memproses data spasial, maka request berkaitan dengan pemrosesan peta akan dikerjakan oleh mapserver sesuai dengan register yang diberikan oleh webserver terkait alokasi task dan resource. Hasil dari pemrosesan yang sudah dilakukan akan di replay melalui server web yang dibungkus dalam sebuah file dalam bentuk HTML atau applet
Gambar 4 : Perbandingan thin and thick client Mapserver menggunakan pendekatan thin client. Semua pemrosesan dilakukan di sisi server. Informasi peta dikirimkan ke web browser di sisi klien dalam bentuk file gambar (JPG, PNG, GIF atau TIFF). Kelebihan aplikasi dengan konsep thin client ini adalah sudah beragamnya aplikasi pendukung dalam bentuk framework jadi seperti Chameleon atau cartoweb.
3. KOMPONEN TEKNIS Komponen yang ada pada sebuah aplikasi GIS mempunyai fungsi utama untuk membaca dan menulis data spasial, baik yang tersimpan dalam sebuah shapefile (*.shp) atau tersimpan ke dalam sebuah database (Eddy 2006).
Dalam MapServer yang sudah berjalan ada beberapa Komponen utama yang digunakan secara peneuh untuk menjalankan Aplikasi GIS untuk menangani data spasial baik yang tersimpan dalam sebuah flat file atau juga dalam DBMS yaitu : 1. SHAPELIB Shapelib merupakan library yang ditulis menggunakan bahasa pemrograman C yang digunakan untuk melakukan proses read terhadap Shapefile (*.shp) yang sudah didefinisikan ESRI (Environmental System Research Institute). Format dalam shapefile umum digunakan untuk menyimpan data vector simple (tanpa topologi) dengan atribut, shapefile merupakan format data default yang digunakan dalam GIS. 2. GDAL.OGR GDAL (Geographic Data Abstraction Library), merupakan library yang berfungsi sebagai penerjemah untuk berbagi format data raster, dan sangat dimungkinkan untuk semua abstraksi dari semua data format yang didukung, sehingga beragam format data yang ada akan menghasilkan satu format baku yang dapat digunakan untuk pengembang dalam menampilkan bentuk/format peta yang sesuai semisal akses data untuk yang direpresentasikan dalam . gif, .tif, .img, .adf, .hdr dst 3. LIBPNG/LIBJPG Setelah data dipastikan ditulis dalam bentuk/format yang standard yaitu .jpg atau. Png maka komponen salanjutnya yang tidak kalah penting adalah LIBPNG/JPG yang berfungsi untuk menampilkan peta dalam layar dengan format .JPG atau .PNG sehingga attribute peta bisa tampil sesuai dengan topologi peta yang sudah di gunakan.
4. GD/PROJECTION Library ini digunakan sebagai media untuk identifikasi jenis peta yang ditampilkan, biasanya peta akan ditampilkan per layer sesuai dengan penamaan layer masing – masing. Fungsi ini digunakan untuk menggambar obyek geografis yang ada seperti garis, polygon, atau bentuk geometris lainnya. Selain itu fungsi ini digunakna sebagai fungsi untuk memproyeksikan peta menentukan bagaimana objek-objek di permukaan bumi (yang sebenarnya tidak datar) dipindahkan atau diproyeksikan pada permukaan peta yaitu di sebuah bidang datar, ilustrasi sebagai berikut 1
Gambar 5 : Contoh Proyeksi Peta
4. PHP/MAPSCRIPT FRAMEWORK Php/Mapscript, atau sering disebut Mapscript saja, adalah sebuah modul yang digunakan untuk membuat fungsi-fungsi dan class-class MapServer agar dapat dijalankan di PHP3/PHP4.
1
Gambar peta diambil dari situs http://www.progonos.com/furuti/MapProj/Dither/ProjCyl/projCyl.html
Secara garis besar proses pengolahan yang ditangani oleh mapscript adalah sebagai berikut
Gambar 6 : Proses MapScript pada Web Server Proses diawali dengan request dari client ke server. Web Server akan menjalankan fungsi fungsi yang ada di library Mapscript. Data spatial yang akan digunakan berupa data bertipe shapefile, yang merupakan file spatial standar dari ESRI. Dengan perantara MapFile, sebagai pengatur setting dari data yang akan ditampilkan, MapScript akan membaca data spatial dishapefile ini, memprosesnya sesuai permintaan dari client, kemudian menyimpannya kedalam bentuk file gambar (GIF,JPG, atau PNG). File gambar ini kemudian akan diload ke client dalam bentuk object Image HTML. Karena bentuk peta yang ditampilkan merupakan file gambar maka kerja client tidak berat, terutama jika dibandingkan dengan cara lain yang menggunakan activeX. 4.1 Map File Mapscript memerlukan sebuah file text yang berisi setting layer-layer peta yang akan ditampilkan. File ini disebut Mapfile dengan extensi .map Dalam file in berisikan beberapa konfigurasi stats dan dinamis tergantung dari konsep mapserver yang dibangun, beberapa parameter konfigurasi adalah sebagai berikut :
# File: peta.map MAP NAME "WilayahPesisir" STATUS ON EXTENT 481906.6 9873957.1 10010114.4 IMAGETYPE PNG SIZE 800 600 SHAPEPATH "../shp" IMAGECOLOR 255 255 255 UNITS dd WEB IMAGEPATH "/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" END REFERENCE COLOR -1 -1 -1 EXTENT 92.5 -19.5 142.5 14.0 IMAGE "id_index.jpg" OUTLINECOLOR 255 0 0 SIZE 120 80 STATUS ON END LEGEND IMAGECOLOR 255 255 255 KEYSIZE 18 12 KEYSPACING 5 5 LABEL SIZE MEDIUM TYPE BITMAP BUFFER 0 COLOR 0 0 89 FORCE FALSE
570651.9
MINDISTANCE -1 MINFEATURESIZE -1 OFFSET 0 0 PARTIALS TRUE END POSITION LL STATUS ON TEMPLATE "legend.html" END QUERYMAP COLOR 0 0 255 SIZE -1 -1 STATUS OFF STYLE HILITE END SCALEBAR STYLE 1 UNITS kilometers END LAYER NAME "Kecamatan" DATA "6kec_wil_pesisir.shp" STATUS DEFAULT TYPE POLYGON METADATA "DESCRIPTION" "Kecamatan" "RESULT_FIELDS" "FID;KECAMATAN" "DESC_FIELDS" "Kecamatan" END TEMPLATE "prop_query.html" TOLERANCE 0 TOLERANCEUNITS PIXELS
CLASS Name "Batas Kecamatan" COLOR 225 200 100 OUTLINECOLOR 0 0 0 END END END Tabel 1 : Struktur Parameter File .Map Struktur file .Map yang digunakan berisi konfigurasi dari peta yang akan di tampilkan isinya memuat beberapa bagian penting yang menjadi kelas utama untuk diproses, bagian – bagian ini disebut dengan parameter yang nantinya akan di proses oleh map script obyek untuk penanganan obyek yang akan disajikan dalam sebuah website. NAME STATUS EXTENT IMAGETYPE SIZE SHAPEPATH IMAGECOLOR UNITS WEB REFERENCE LEGEND QUERYMAP SCALEBAR LAYER CLASS 4.2 Map Script Obyek Modul MapScript disusun menggunakan pendekatan pemrograman berorientasi obyek (Object Oriented Programming) atau biasa disingkat OOP yang sering menggunakan kelas (class) yang akan bekerja dengan berbagai kelas
yang ada disamping fungsi dan variable khusus juga. Mapscript digunakan sebagai script/code program untuk menjalankan fungsi utama dari aplikasi GIS sehingga peta dan attributenya bisa ditampilkan pada website. Berikut deskripsi singkat kelas kelas pada mapscript : a. ClassObj fungsi yang digunakan untuk mengatur kelaskelas pada sebuah obyek(layer). b. ColorObj Fungsi yang digunakan untuk mengatur warna dasar dari sebuah layer dengan konsep RGB. c. ErrorObj Fungsi yang digunakan untuk menajemen kesalahan (Error). Map server akan secara otomatis menginisiasi ErrorObj ketika terjadi kesalahan d. GridObj fungsi yang digunakan untuk mengatur tampilan dari bentuk standard menjadi bentu grid e. ImageObj Fungsi yang digunakan untuk menggambarkan peta pada sebuah file semisal JPG, GIF, PNG f. LabelCacheObj Fungsi yang digunakan untuk membersihkan memori yang dialokasikan sebagai cache label dari peta yang ditampilkan g. LabelObj Fungsi yang digunakan untuk pengaturan tampak label dari masing – masing layer yang aktif dalam viewer. h. LayerObj fungsi yang digunakan untuk mengatur operasi-operasi yang berhubungan dengan pembuatan layer, penggambaran, dan query data dari layer yang aktif. i. LegendObj
fungsi yang digunakan untuk menampilkan legend (table yang berisi tentang layer – layer yang digunakan didalam peta).
Gambar 6 : Contoh Penulisan LegendObj Dalam Script j. LineObj Fungsi yang digunakan untuk manampilkan layer peta yang bertipe garis. k. MapObj fungsi yang digunakan untuk menampilkan karakterristik peta yang akan ditampilkan (fungsi utama untuk menampilkan peta).
Gambar 7 : Contoh Penulisan Fungsi MapObj Dalam Script l. OutputFormatObj Fungsi yang digunakan untuk menentukan format peta yang ditampilkan dalam jendela viewer. m. PointObj Fungsi yang digunakan untuk manampilkan layer peta yang bertipe titik n. ProjectionObj Fungsi yang digunakan untuk mengatur penggunaan sistem proyeksi pada peta. o. RectObj Fungsi yang digunakan untuk manampilkan layer peta yang bertipe kotak. p. ReferenceMapObj Fungsi yang digunakan untuk mengatur karakteristik peta yang ditapilkan di indeks. q. ResultCacheMemberObj Fungsi yang digunakan untuk mengatur objekobjek dari hasil query data attribut peta. r. ScalebarObj Fungsi yang digunakan untuk mengatur karakteristik skala grafis ketika peta ditampilkan
Gambar 8 : Contoh Penulisan Fungsi ScalebarObj Dalam Script s. ShapefileObj Kelas yang digunakan untuk bekerja dengan data peta dalam format shapefile (*.shp) t. ShapeObj Kelas yang digunakan untuk bekerja dengan data peta lebih detail terutama untuk menangani tipe dari peta misal titik, garis, polygon. u. StyleObj Kelas yang digunakan untuk bekerja dengan data peta lebih detail terutama untuk menangani penggunaan obyek style pada peta. v. SymbolObj Kelas yang digunakan untuk bekerja dengan data peta lebih detail terutama untuk menangani penggunaan obyek simbol pada peta. w. WebObj fungsi yang digunakan untuk mengatur opsi – opsi yang berhubungan dengan web misalnya logging aktivitas
5. KESIMPULAN PHP Map Script Framework adalah salah satu dari sekian banyak framework yang dapat digunakan untuk mengembangkan aplikasi GIS, dukungan sifat dari framework ini yaitu opensource menjadi nilai tambah ketika developer sistem bekerja karena banyaknya
dokumentasi atau forum yang dapat digunakan sebagai referensi. Selain itu juga ada beberapa kelebihan dasar yang menjadi framework ini sangat penting antara lain 1. Membuat gambar peta menjadi lebih dinamis. 2. Mendukung beberapa bahasa pemrograman web yaitu PHP, Perl, Phyton, dan Java.
REFERENCES Kang-Tsung Chang, 2008. Introduction to Geographic Information Systems. Fourth edition. McGraw-Hill International Edition. Nuryadin, Ruslan. 2005. Panduan MapServer. Bandung: Informatika.. Prahasta, Eddy. 2006. Membangun Aplikasi Web-based GIS Dengan MapSever. Bandung: Informatika. University Consortium for Geographic Information Science, 2006. Geographic Information Science and Technology Body of Knowledge. Available at: http://www.aag.org/bok/ AAGKnowledge_Flyer.pdf (Akses February 2010).