VII. MEMBUAT APLIKASI DEMO WEBGIS MAPSERVER - POSTGIS Kita akan mengubah demo/sample aplikasi Web GIS yang sudah kita buat diatas, menjadi aplikasi webgis mapserver yang mengambil data geometri dan atribut dari postgresql server yang sudah mendukung POSTGIS. Aplikasi ini juga bisa di download di : http:///download/gis/demo_mapserver_postgis.zip. Setelah download selesai, ekstrak isi nya ke direktori yang sesuai, yaitu : apps, http.d dan Apache/htdocs. Kemudian load data sql ke dalam database postgresql anda. Lalu restart Apache anda dengan mengeksekusi apache-restart.bat. buka http://localhost dengan web browser, kemudian klik link demo pada Hatma Suryotrisongko Demo Web GIS - PostGIS Spatial Database URLs: : http://localhost/demo2/demo.phtml Link URL demo program kedua, pada halaman utama MENGUBAH FILE KONFIGURASI PERTA (CHAMELEON.MAP) DARI SAMPLE/DEMO APLIKASI DIATAS, MENJADI APLIKASI WEBGIS YANG MENGAMBIL DATA DARI SERVER DATABASE POSTGRESQL. Kita akan merubah baris pemanggilan data shp pada baris definisi layer, sehingga pengambilan data langsung dari database. Secara umum, kita akan mengubah dengan cara sebagai berikut : Langkah I. beri tanda komentar (#) pada baris definisi data # DATA (data file shp) Langkah II. Sisipkan definisi pengambilan data dari database CONNECTION "user=[nama user] dbname=[nama database] host=[host database] port=[port database : 5432] password=[password anda]" DATA "[nama kolom geometry] FROM [nama table] USING UNIQUE [unique index / primary key]" FILTER "[kondisi / persyaratan]" 1
Harap diperhatikan, bahwa penulisan nama kolom, nama table HARUS menggunakan huruf kecil, sedangkan untuk lainnya menggunakan huruf besar (perhatikan pada bagian DATA dan FILTER diatas), selain itu juga harus sesuai dengan penulisan perintah yang dimengerti oleh database postgresql (pada definisi DATA tidak menggunakan syntax SELECT, sedang pada definisi FILTER tidak menggunakan syntax WHERE). USING UNIQUE [unique index / primary key] pada baris definisi DATA digunakan untuk mempercepat query menggunakan index. Langkah III. Sesuaikan baris definisi lain LabelItem "name" CLASSITEM "capital" CLASS EXPRESSION "1" TEMPLATE "ttt_query.html" SYMBOL 2 SIZE 8 NAME "Cities" COLOR 0 0 0 END Harap diperhatikan, bahwa penulisan nama kolom data atribut pada LABELITEM, CLASSITEM, dan lain-lain harus menggunakan huruf kecil. Begitu juga dengan isi dari definisi EXPRESSION, harus sesuai dengan penulisan perintah yang dimengerti oleh database postgresql. Sehingga berikut ini perubahan yang terjadi pada file konfigurasi perta (.map) Layer land_fn #DATA land_fn DATA "the_geom FROM tland_fn USING UNIQUE gid" Layer park #DATA park 2
DATA "the_geom FROM tpark USING UNIQUE gid" Layer drain_fn #DATA drain_fn DATA "the_geom FROM tdrain_fn USING UNIQUE gid" FILTER "poly_featu = 16 OR poly_featu = 21" CLASSITEM "poly_featu" Layer drainage #DATA drainage DATA "the_geom FROM tdrainage USING UNIQUE gid" FILTER "poly_featu = 0" CLASSITEM "poly_featu" Layer prov_bound #DATA province DATA "the_geom FROM tprovince USING UNIQUE gid" Layer fedlimit #DATA fedlimit DATA "the_geom FROM tfedlimit USING UNIQUE gid" Layer rail #DATA rail DATA "the_geom FROM trail USING UNIQUE gid" Layer road #DATA road 3
DATA "the_geom FROM troad USING UNIQUE gid" Layer popplace #DATA popplace DATA "the_geom FROM tpopplace USING UNIQUE gid" FILTER "capital >= 1 AND capital <= 3" LabelItem "name" CLASSITEM "capital" Layer "grid" #DATA "grid" DATA "the_geom FROM tgrid USING UNIQUE gid" Beberapa perubahan pada file chameleon.php Setelah file konfigurasi selesai dirubah, selanjutnya kita ujicoba apakah aplikasi yang sudah kita buat dapat berjalan dengan baik, dan apakah data yang ditampilkan sama dengan data yang ditampilkan pada aplikasi demo yang masih mengambil data dari file shp. 4
Tampilan program dengan mengambil data dari database 5