07
Feb
11

[WebGIS 2] – MapFile pada MapServer

<< Artikel sebelumnya “Pengenalan WebGIS dan MapServer”

Untuk memanfaatkan fungsionalitasnya yang paling sederhana sekalipun, MapServer akan selalu membutuhkan minimal sebuah mapfile. Mapfile merupakan file teks biasa yang berekstensi *.map yang akan mendeskripsikan apa dan dimana sumber datanya, dan bagaimana cara data tersebut harus ditampilkan. Oleh karena itu, penting bagi kita untuk memahami struktur mapfile ini terlebih dahulu sebelum memasuki bahasan selanjutnya.

 

Tentang MapFile

Sebelum benar-benar menggunakan MapServer untuk pertama kalinya, pengguna harus membuat file teks yang berekstensi *.map. File yang disebut mapfile tersebut memiliki ketentuan-ketentuan penulisan sebagai berikut:

  • Teks pada mapfile tidak bersifat case-sensitive.
  • Penulisan string yang berisi campuran beberapa karakter non-alphanumerik (selain karakter huruf dan angka) atau keywords milik MapServer harus diapit oleh tanda petik ganda ( “ ).
  • Setiap mapfile dapat digunakan untuk mendefinisikan (secara default) maksimal 50 layer peta.
  • Penulisan path lokasi file bisa dilakukan secara absolut maupun relatif.
  • Susunan atau isi mapfile memiliki hierarki struktur dengan objek “MAP” sebagai “root”. Sementara objek-objek lainnya berada di bawah objek ini.
  • Pengguna dapat menambahkan baris-baris komentar di dalam mapfile dengan cara mengawali komentar tersebut dengan karakter pagar (#).

 

Contoh Pembuatan MapFile Sederhana

Sebagai contoh pertama kita, berikut ini adalah isi mapfile sederhana yang dapat digunakan untuk menampilkan sebuah layer peta di dalam program aplikasi browser internet. Namun sebelum itu silahkan download file data.zip yang ada di alamat http://www.4shared.com/file/cPDkWoIK/data.html, kemudian ekstrak ke direktori C:\ms4w\apps\latih\ sehingga pada direktori tersebut terdapat direktori “data”.

Silahkan Anda tulis isi mapfile berikut ini pada program editor teks sederhana seperti Notepad, kemudian simpan di direktori C:\ms4w\apps\latih\map\ dengan nama file asean.map:

#
# Komentar untuk mapfile
#
MAP        # tanda awal mapfile
   NAME Indonesia        # nama mapfile
   IMAGETYPE JPEG        # bisa juga GIF, PNG
   EXTENT  73.33 -10.28 160.20 5.80    # B1,L1,B2,L2
   STATUS ON
   UNITS DD
   SIZE 600 400            # ukuran image yang dihasilkan
   SHAPEPATH  “../data/asean/”    # bisa juga “<drive>:\ms4w\……\data\asean\”
   IMAGECOLOR 108 166 205    

   #
   # Mulai pendefinisian layer
   #
   LAYER                # tanda awal definisi layer
      NAME Asean            # nama layer
      DATA Asean-oceania        # nama shapefile “Acean-oceania.shp”
      STATUS ON            # layer dimunculkan
      TYPE POLYGON            # untuk tipe poligon
      CLASS
         NAME “Asean”
         STYLE
            COLOR 255 255 255        # warna latar putih
            OUTLINECOLOR 108 166 205    # warna batas luar poligon
         END    # akhir style
      END    #akhir class
   END        #akhir definisi layer
END     # akhir mapfile

 

Keterangan (sesuai urutan baris):

  • MapFile tersebut memiliki objek MAP yang bernama “Indonesia”
  • File sementara yang dihasilkan oleh MapServer nantinya berupa file JPEG (bisa juga berupa GIF maupun PNG).
  • Jangkauan batas koordinat peta adalah (73.33,-10.28); (160.20,5.80). Nilai-nilai tersebut diambil dari (sebagian) cakupan peta aslinya.
  • Semua layer dimunculkan (STATUS ON).
  • Satuan koordinat peta dalam derajat (DD). Digunakan untuk menentukan scalebar dan komputasi lainnya yang terkait dengan koordinat & skala.
  • Ukuran (resolusi) gambar yang dihasilkan adalah 600×400 pixel.
  • Data spasial yang digunakan berlokasi di “../data/asean” (relatif terhadap folder dimana mapfile berada).
  • Warna latar pada peta adalah warna biru muda (RGB: 108 166 205). Untuk memudahkan dalam memilih warna, Anda bisa menggunakan tool ColorPic yang dapat di download di internet.
  • Pada peta “Indonesia” tersebut, terdapat layer yang bernama “Asean”.
  • Nama shapefile yang digunakan untuk layer “Asean” tersebut adalah “Asean-oceania.shp”.
  • Layer tersebut statusnya dimunculkan (STATUS ON).
  • Di dalam layer “Asean” terdapat unsur-unsur spasial yang bertipe poligon dengan nama “Asean” juga.
  • Kelas “Asean” akan disajikan dengan warna latar putih (RGB: 255 255 255) dengan garis tepi warna biru muda yang sama dengan warna latar peta.

 

Objek-objek di dalam MapFile

Pada contoh sederhana di bagian sebelumnya, kita lihat bahwa secara garis besar mapfile terdiri dari 5 bagian: Map, Layer, Class, Label, dan Style. Kita akan bahas 5 bagian tersebut satu-per-satu.

 

Map

Objek ini mendefinisikan objek master milik mapfile, yang isinya adalah parameter-parameter global untuk peta yang akan ditampilkan.

#
# BARIS KOMENTAR UNTUK MAPFILE YANG BERSANGKUTAN
#
MAP
...
...
END # AKHIR MAP
 

Layer

Objek ini paling sering digunakan untuk mendefinisikan layer-layer yang kemudian membentuk peta. Urutan penempatan layer di peta adalah sesuai dengan urutan penulisannya. Artinya, layer yang paling dulu dituliskan akan ditempatkan di bagian paling bawah dari peta.

#
# BARIS KOMENTAR UNTUK MAPFILE YANG BERSANGKUTAN
#
MAP
...
  LAYER
  ...
  END # AKHIR DEFINISI OBJEK LAYER
...
END # AKHIR MAP

 

Class

Objek ini digunakan untuk mendefinisikan kelas tematik untuk suatu layer. Jadi bisa dikatakan, setiap layer pasti memiliki paling tidak satu kelas. Ketika layer memiliki lebih dari satu kelas, maka kelas-kelas tersebut dibedakan oleh nilai-nilai yang terkait beserta ekspresi yang digunakan untuk mengevaluasinya. Mengenai ekspresi akan dibahas di bagian selanjutnya.

#
# BARIS KOMENTAR UNTUK MAPFILE YANG BERSANGKUTAN
#
MAP
...
  LAYER
  ...
     CLASS
     ...
     END # AKHIR DEFINISI CLASS
  ...
  END # AKHIR DEFINISI OBJEK LAYER
...
END # AKHIR MAP

 

Label

Objek ini digunakan untuk mendefinisikan anotasi suatu unsur dalam peta. Selain itu, label juga dapat dijadikan sebagai simbol.

#
# BARIS KOMENTAR UNTUK MAPFILE YANG BERSANGKUTAN
#
MAP
...
  LAYER
  ...
     CLASS
     ...
       LABEL
       ...
       END # AKHIR DEFINISI LABEL
     ...
     END # AKHIR DEFINISI CLASS
  ...
  END # AKHIR DEFINISI OBJEK LAYER
...
END # AKHIR MAP

 

Style

Objek ini digunakan untuk menentukan parameter-parameter simbol yang dipakai. Dengan adanya objek ini, setiap kelas dapat memiliki simbol dengan tipe, ukuran, dan warna tersendiri.

#
# BARIS KOMENTAR UNTUK MAPFILE YANG BERSANGKUTAN
#
MAP
...
  LAYER
  ...
     CLASS
     ...
       STYLE
       ...
       END # AKHIR DEFINISI STYLE
       LABEL
       ...
       END # AKHIR DEFINISI LABEL
     ...
     END # AKHIR DEFINISI CLASS
  ...
  END # AKHIR DEFINISI OBJEK LAYER
...
END # AKHIR MAP

 

 

Menampilkan MapFile

Untuk menampilkan peta pertama kita, silahkan buka melalui browser dengan perintah:

http://localhost:1111/cgi-bin/mapserv.exe?map=<drive>:\ms4w\apps\latih\map\asean.map&¿ mode=map&layers=all

gambar_3_contoh_tampilan_peta_asean

Atau, untuk lebih mudahnya kita buat suatu file html yang isinya adalah sebagai berikut:

 

<html>
<head>
<title> Belajar Mapserver</title>
</head>
<body>
  <h1> Contoh-contoh Belajar Mapserver</h1>
  <h3>Menu</h3>
  <ul>
    <li><a href="contoh_01.html">Menampilkan Peta Sederhana</a></li>
  </ul>
</body>
</html>

 

Simpanlah dengan nama file peta.html di direktori C:\ms4w\apps\latih\htdocs\

Selanjutnya, buatlah file html baru yang isinya adalah sebagai berikut:

 

<img border="1" src="http://localhost:1111/cgi-bin/mapserv.exe?map=c:\ms4w\apps\latih\map\asean.map&mode=map&layers=all">

 

Simpanlah dengan nama file contoh_01.html dan simpan di C:\ms4w\apps\latih\htdocs\. Pada browser bukalah alamat http://localhost:1111/latih/peta.html sehingga akan muncul tampilan seperti berikut ini.

gambar_4_tampilan_peta_html

Ketika link yang ada pada halaman tsb di klik, akan muncul tampilan peta seperti pada gambar sebelumnya.  Smile

Oke… selamat… sampai tahap ini Anda sudah berhasil menampilkan peta di browser… itu sudah disebut dengan “WebGIS” loh… tapi masih amat-sangat-sederhana-sekali… Winking smileWinking smileWinking smile

 

Tulisan selanjutnya akan membahas bagaimana menampilkan layer ganda… staytuned… (harusnya ga lama sih) Winking smile


10 Tanggapan ke “[WebGIS 2] – MapFile pada MapServer”


  1. Februari 9, 2011 pukul 5:56 pm

    jadi inget sama ndas…

  2. Maret 16, 2011 pukul 4:33 pm

    lanjut boss… :D
    mapfile jg terbagi header, body, footer lho. dan sekarang udah bisa dibuat terpisah dengan include utk mempermudah.

  3. 6 kurnia
    Maret 30, 2011 pukul 5:57 am

    # ……
    # …….
    MAP
    NAME debi
    # Map image size
    SIZE 500 400
    UNITS dd

    EXTENT 111.396785 -7.323407 112.614331 -6.647125
    SYMBOLSET “../common/symbols/symbols-pmapper.sym”
    FONTSET “../common/fonts/msfontset.txt”
    RESOLUTION 96
    INTERLACE OFF
    PROJECTION
    ‘proj=longlat’
    ‘ellps=WGS84′
    ‘datum=WGS84′
    ‘no_defs’

    END

    # Background color for the map canvas — change as desired
    IMAGECOLOR 192 192 192
    IMAGEQUALITY 95
    IMAGETYPE png
    OUTPUTFORMAT
    NAME png
    DRIVER ‘GD/PNG’
    MIMETYPE ‘image/png’
    #IMAGEMODE PC256
    EXTENSION ‘png’
    END
    # Legend
    LEGEND
    IMAGECOLOR 255 255 255
    STATUS ON
    KEYSIZE 18 12
    LABEL
    TYPE BITMAP
    SIZE MEDIUM
    COLOR 0 0 89
    END
    END

    # Web interface definition. Only the template parameter
    # is required to display a map. See MapServer documentation
    WEB
    TEMPLATE “map.html”
    IMAGEPATH “/ms4w/tmp/ms_tmp/”
    IMAGEURL “/ms_tmp/”

    # Set IMAGEPATH to the path where MapServer should
    # write its output.
    IMAGEPATH ‘/tmp/’

    # Set IMAGEURL to the url that points to IMAGEPATH
    # as defined in your web server configuration
    IMAGEURL ‘/tmp/’

    # WMS server settings
    METADATA
    ‘wms_title’ ‘debi’
    ‘wms_onlineresource’ ‘http://my.host.com/cgi-bin/mapserv?map=wms.map&’
    ‘wms_srs’ ‘EPSG:4326′
    END

    #Scale range at which web interface will operate
    # Template and header/footer settings
    # Only the template parameter is required to display a map. See MapServer documentation

    END
    REFERENCE

    EXTENT 111.474055 -7.508496 112.537061 -6.462036
    IMAGE “../../images/references.png”
    SIZE 185 140
    COLOR -1 -1 -1
    OUTLINECOLOR 255 0 0
    END # Reference
    SCALEBAR
    STATUS on
    TRANSPARENT off
    INTERVALS 4
    SIZE 200 3
    UNITS kilometers
    COLOR 144 50 207
    OUTLINECOLOR 0 0 0
    BACKGROUNDCOLOR 100 100 100
    STYLE 0
    POSTLABELCACHE true
    LABEL
    COLOR 0 0 90
    #OUTLINECOLOR 200 200 200
    SIZE small
    END # Label
    END # Reference

    LAYER
    NAME ‘base_map’
    TEMPLATE “void”
    TYPE POLYGON
    CONNECTIONTYPE postgis
    CONNECTION “host=localhost user=postgres password=mnbvcxz dbname=gis_debi port=5432″
    DATA “the_geom FROM base_map AS new_table USING UNIQUE gid USING SRID=-1″
    METADATA
    ‘wms_title’ ‘base_map’
    “DESCRIPTION” “base_map”
    “RESULT_FIELDS” “nama_kec,luas_kec”
    “RESULT_HEADERS” “nama kec,luas kec”
    “LAYER_ENCODING” “UTF-8″
    END
    STATUS DEFAULT
    TRANSPARENCY 100
    PROJECTION
    ‘proj=longlat’
    ‘ellps=WGS84′
    ‘datum=WGS84′
    ‘no_defs’

    END
    CLASS
    NAME ‘base_map’
    STYLE
    SYMBOL 0
    SIZE 10
    OUTLINECOLOR 0 0 0
    COLOR 144 50 207
    END
    END
    END

    LAYER
    NAME ‘kecamatan_desa’
    TEMPLATE “void”
    TYPE POLYGON
    CONNECTIONTYPE postgis
    CONNECTION “host=localhost user=postgres password=mnbvcxz dbname=gis_debi port=5432″
    DATA “the_geom FROM kecamatan_desa AS new_table USING UNIQUE gid USING SRID=-1″
    METADATA
    ‘wms_title’ ‘kecamatan_desa’
    “DESCRIPTION” “kecamatan_desa”
    “RESULT_FIELDS” “kecamatan,nama_desa”
    “RESULT_HEADERS” “nama kec,nama desa”
    “LAYER_ENCODING” “UTF-8″

    END
    STATUS DEFAULT
    TRANSPARENCY 100
    PROJECTION
    ‘proj=longlat’
    ‘ellps=WGS84′
    ‘datum=WGS84′
    ‘no_defs’

    END
    CLASS
    NAME ‘kecamatan_desa’
    STYLE
    SYMBOL 0
    SIZE 10
    OUTLINECOLOR 0 0 0
    COLOR 150 123 90
    END
    END
    END

    mas ada yang salah g di fail map saya ini???soalnya waktu saya jalankan dengan pmapper diya g mw muncul petanya loding terus.

  4. 9 fajar
    Mei 18, 2011 pukul 7:49 am

    Ditunggu kelanjutannya,,kalau bisa jangan lama-lama pak,,makash buat tutorialnya,,


Tinggalkan Balasan

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 / Ubah )

Twitter picture

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

Facebook photo

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

Connecting to %s


Arsip

Blog Stats

  • 29,760 hits

RSS Tanya Jawab Islam

  • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.

Ikuti

Get every new post delivered to your Inbox.