Menampilkan peta digital dari Postgis ke Mapserver


Latar Belakang

Dalam tulisan saya terdahulu menjelaskan cara import peta digital dari QuantumGIS ke  database Postgre. sekarang menjelaskan bagaimana caranya menampilkan peta digital yang tersimpan dalam database postgre tersebut dengan bantuan library postgis.

Dalam konsep GIS web base yang saya tau, peta digital itu dapat disimpan dalam file SHP dapat juga disimpan dalam sebuah database. dalam project saya waktu penulisan ilmiah, saya menggunakan teknik pertama yaitu menyimpan peta digital kedalam kumpulan file-file SHP. untuk pengembangannya sekarang saya mempelajari teknik menyimpan peta digital kedalam sebuah database postgre menggunakan library postgis.

Tahap Persiapan

yang harus disiapkan dalam percobaan ini adalah file peta_db.map yang berisi script mapserver yang digunakan untuk melakukan koneksi ke database postgre. dan menjalankan query untuk menampilkan peta digital yang ada didalam tabel distrik yang sebelumnya sudah terbuat dan sudah berisi data.

Tahap Coding

kita membuat sebuah file peta_db.map yang sisimpan dalam folder C:\ms4w\apps\map\

#
# Komentar untuk mapfile ybs.
#
MAP                      # tanda awal mapfile
NAME        District  #
IMAGETYPE   JPEG        # bisa PNG, GIF, dll
EXTENT      -119.88000 36.53000 -119.33000 36.89000  # B1,L1; B2,L2
STATUS      ON     #
UNITS       DD    # satuan derajat
SIZE        350 400   # ukuran image
SHAPEPATH   “\ms4w\apps\map\shp”
IMAGECOLOR  255 255 255
#
# Mulai pendefinisian layers
#
LAYER
NAME      District
STATUS    ON
TYPE      POLYGON

CONNECTIONTYPE POSTGIS
CONNECTION “host=localhost dbname=testgis user=postgres password=shugaru7 port=5432
DATA “the_geom from distrik

CLASS
NAME   “District”
STYLE
COLOR 179 243 251
OUTLINECOLOR 0 0 0
END # style
END # class
END # Akhir definisi layer
#
END # Akhir mapfile

Membuat Halaman Web

kita membuat sebuah file index_db.html yang sisimpan dalam folder C:\ms4w\Apache\htdocs\web\

<html>
<head><title>Menampilkan Peta dari Postgis-Mapserver</title></head>
<body>
<center>
<img border=”1″ src=”http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/map/peta_db.map&layer=District&mode=map“>
</center>
</body>
</html>

Tahap Testing

Untuk menjalankannya kita menggunakan sebuah web browser dan mengetikan alamat url :

  1. http://localhost/web/index_db.html
  2. Anda juga dapat menggunakan alamat URL langsung menuju file mapservernya http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/map/peta_db.map&layer=District&mode=mapsehingga hasilnya akan tampil seperti dibawah ini :

    Output

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin

Depok, 13-06-2011

noname

Advertisements

5 Responses

  1. pak.agus rajin nih bikin artikel nya.hehe
    mw tanya klo utk CREATE dan query nya gmna??
    saya bikin GIS php-mysql, tpi trnyata mysql kurng mndukung utk data spasialnya. nahh skrng saya lgi mncari pmbelajaran utk php-postgis. tpi saya gg tau utk CREATE dll nya. mohon dgn sangat (^.^’) ilmu dri p.agus nihh ttng php-postgis ini.thanx

    Like

  2. 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 🙂

    Like

  3. ass mas..
    sdh sy ikuti contohnya mas….
    tp kok muncul bgini….

    msDrawMap(): Image handling error. Failed to draw layer named ‘District’. prepare_database(): Query error. Error declaring cursor: ERROR: function force_2d(geometry) does not exist LINE 1: …INARY CURSOR FOR SELECT asbinary(force_collection(force_2d(t… ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. With query string: DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d(the_geom)),’NDR’),OID::text from “fdistrict” WHERE the_geom && setSRID(‘BOX3D(-119.88 36.3956017191977,-119.33 37.0243982808023)’::BOX3D, find_srid(”,'”fdistrict”‘,’the_geom’) ) msPOSTGISLayerRetrievePGVersion(): Query error. Error executing POSTGIS statement (msPOSTGISLayerRetrievePGVersion():select substring(version() from 12 for (position(‘on’ in version()) – 13))

    Like

  4. mas kalok misalkan sy mnggunakan arcview 3.3 kemudian sy mengkonvertnya menggunakan cara sperti pengkonverttan mapserver yg langsung masuk ke database, apakah scripnya sama dengan yg diatas?

    Like

  5. kenapa setelah di upload data map nya, tidak muncul, koneksinya dari alamatnya gimana yah setelah di upload

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: