PostGIS Dynamic Input Dengan Mapserver CGI Mode
Pada script .map Anda, mungkin menggunakan koneksi PostGIS untuk mengakses data dan geometry. Pertanyaan yang muncul, bagaimana pada data yang ingin kita tampilkan bersifat dinamis. Misalnya saja untuk klasifikasi peta dalam NQuery Mode ataupun layer khusus yang menampilkan data dengan masukan (input) dari website.
Salah satu koneksi statis menampilkan data pada salah satu layer misalnya seperti ini:
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=bandung user=eric password=password"
DATA "the_geom from bandung"
Sekarang kita ingin menambah satu layer lagi dengan klasifikasi kepadatan penduduk satu daerah kecamatan yang lebih dari 50rb orang. Kita tentu membuat kondisi khusus seperti ini:
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=bandung user=eric password=password"
DATA "the_geom from bandung WHERE 'POPULASI' >= 50"
Atau menggunakan beberapa klasifikasi dengan pewarnaan yang berbeda:
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=bandung user=eric password=password"
DATA "the_geom from bandung"
CLASSITEM 'POPULASI'
CLASS
NAME 'Populasi Rendah'
EXPRESSION ([POPULASI] >= 0 AND [POPULASI] < 50)
COLOR 255 0 0
OUTLINECOLOR 0 0 0
END
CLASS
NAME 'Populasi Sedang'
EXPRESSION ([POPULASI] >= 50 AND [POPULASI] < 200)
COLOR 255 255 0
OUTLINECOLOR 0 0 0
END
CLASS
NAME 'Populasi Tinggi'
EXPRESSION ([POPULASI] >= 200)
COLOR 0 255 0
OUTLINECOLOR 0 0 0
END
END
Lebih ke depan, setelah mempelajari dan menerapkan fungsi routing dijkstra, kita ingin menampilkan source_id dan target_id yang dinamis:
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=roads user=routing password=password"
DATA "the_geom from (SELECT gid, the_geom from
shortest_path_as_geometry('route', 1, 4567))
as route using unique gid using srid=-1"
Ganti angka 1 dan 4567 berdasarkan masukan. Katakan saja variabel srcID dan trgID.
Ganti saja parameter kondisi dengan suatu variabel. Contoh untuk kasus routing misalnya titik awal routing diberi variabel srcID dan titik tujuan diberi variabel trgID. Ubah sintaks di mapfile menjadi:
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=roads user=routing password=password"
DATA "the_geom from (
SELECT gid, the_geom from
shortest_path_as_geometry('route', %srcID%,%trgID%)
) as route using unique gid using srid=-1"
Dan jangan lupa pada template html dimasukkan variabel srcID dan trgID:
<input name="srcID" type="hidden" value="[srcID]" /> <input name="trgID" type="hidden" value="[trgID]" />
Metoda ini sangat simpel dan dapat dikembangkan misalnya dengan menggunakan javascript.
1. Comment by donny
20/Feb/2008 at 05:12
salam kenal
ric, gw doni. sekarang gw lagi belajar bikin aplikasi web gis pake mapserver. dan gw pake database MySQL. nanya ya, menurut lu, mending pake mana Postgre atau MySQL? apa kelebihan dan kekurangan masing2? alasan gw pake MySQL karena lebih umum dan banyak buku tentang itu. gimana menurut lu?
thanks
-don-
2. Comment by Eric
1/Mar/2008 at 07:30
klo saranku sih mendingan pake 2 database, postgresql dan mysql. Untuk database spasialnya mendingan pake pgsql karena lebih fleksibel aja. Ya alasan untuk mysql karena umum itu. Kalau mau yang gak sedikit umum dan lebih powerful jelas pake postgresql karena supportnya banyak dan agak2 restrict (sepertinya). Ato kalo mau modal dikit pake Oracle yang commercial version aja minta support dari mereka :p huehuehue
3. Comment by khairul
11/Jun/2008 at 20:59
mas eric yg baik hati.
saya mo nanya maksud dr NQuery Mode tuh apa yah?
bagaimana cara membuatnya? n kegunaannya dimana?
4. Comment by Eric
14/Jun/2008 at 08:05
wah, makasih dibilang baek hati wuehehehe…
NQuery Mode itu artinya banyak query yang dieksekusi secara bersamaan.
misalnya nandai (highlight) daerah sumatera utara dan jawa barat sebagai daerah terpilih secara bersamaan.
Atau highlight daerah dengan tingkat kepadatan penduduk antara 12 s/d 20 misalnya.
ya begitu2 lah
banyak kondisi yang diinginkan dalam satu waktu
5. Comment by nie
30/Sep/2010 at 05:52
mas, boleh ga saya minta contoh script aplikasi webGIS yg menggunakan mapserver n DBMS postgre/mySQL utk dipelajari? saya masih sulit mengintegrasikan mapserver n DMBS. trims.
6. Comment by Eric Lontong
22/Oct/2010 at 04:16
sudah banyak kok di internet. nanti kalau ada error atau pertanyaan ingin diapa2in scriptnya, posting lagi deh ya
7. Comment by Elida
1/Nov/2011 at 09:59
Mz, HELP me….
Aq ud nulis script CONNECTION yang sama dengan script yg di t4 mu itu & juga yg memang banyak dicontohkan di berbagai tutorial. TAPI,,,,, conection nya selalu gagal >.<
PADAHAL script nya ud sama persis.
APA memang ada setting-an lain di mapserver, ataupun setting-an yg lain??
Mohon bantuannya, aq ud bener2 pusink ni….
mksi, mz
8. Comment by lontongcorp
2/Nov/2011 at 02:38
coba di test dulu lah bisa konek ga ke database postgresql nya.
*
klo masih pusing, ngopi2 dulu aja kita.
*acem sok kenal gini
9. Comment by ichsan
16/Nov/2011 at 08:51
Mas, kalo pake mapserver bisa gak kita buat webgis seperti google maps (untuk rouitng),
khususnya waktu kita klik di peta kita set menjadi titik awal dan titik akhir,
databasenya sudah jalan , cm untuk tampilin di web'a bingung mas, pas buat form input titik awal dan titik akhir
10. Comment by tea
23/Dec/2011 at 18:29
mw tanya gan?? gmna caranya menambah searching???