WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS
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://www.hatma.info/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 CONNECTIONTYPE POSTGIS 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]"
www.hatma.info
1
WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS
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 CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tland_fn USING UNIQUE gid"
Layer park #DATA park CONNECTIONTYPE POSTGIS
www.hatma.info
2
WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS
CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tpark USING UNIQUE gid"
Layer drain_fn #DATA drain_fn CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tdrain_fn USING UNIQUE gid" FILTER "poly_featu = 16 OR poly_featu = 21" CLASSITEM "poly_featu"
Layer drainage #DATA drainage CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tdrainage USING UNIQUE gid" FILTER "poly_featu = 0" CLASSITEM "poly_featu"
Layer prov_bound #DATA province CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tprovince USING UNIQUE gid"
Layer fedlimit #DATA fedlimit CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tfedlimit USING UNIQUE gid"
Layer rail #DATA rail CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM trail USING UNIQUE gid"
Layer road #DATA road CONNECTIONTYPE POSTGIS
www.hatma.info
3
WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS
CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM troad USING UNIQUE gid"
Layer popplace #DATA popplace CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" DATA "the_geom FROM tpopplace USING UNIQUE gid" FILTER "capital >= 1 AND capital <= 3" LabelItem "name" CLASSITEM "capital"
Layer "grid" #DATA "grid" CONNECTIONTYPE POSTGIS CONNECTION "user=hatma_s dbname=dbspatialdemo host=localhost port=5432 password=2006bedogtelu" 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.
www.hatma.info
4
WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS
Tampilan program dengan mengambil data dari database
www.hatma.info
5