<< 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
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.
Ketika link yang ada pada halaman tsb di klik, akan muncul tampilan peta seperti pada gambar sebelumnya. ![]()
Oke… selamat… sampai tahap ini Anda sudah berhasil menampilkan peta di browser… itu sudah disebut dengan “WebGIS” loh… tapi masih amat-sangat-sederhana-sekali… ![]()
![]()
![]()
Tulisan selanjutnya akan membahas bagaimana menampilkan layer ganda… staytuned… (harusnya ga lama sih) ![]()
jadi inget sama ndas…
ndas mu itu ro…. wkwkwk…
iyo ki mas.. ndass ku ngelu gara2 ndasbot
lanjut boss…
mapfile jg terbagi header, body, footer lho. dan sekarang udah bisa dibuat terpisah dengan include utk mempermudah.
bentar… lg sibuk nih… sedang “mem-freebsd-kan mapserver”
# ……
# …….
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.
waduh… panjang amat mapfile nya …
coba di debug terlebih dahulu per layer… cuma ada 2 layer kan?
nanti ketauan di layer mana dia loading terusnya…
ini pake generator q-gis ya bro?
ane juga sama..di browser nya tampil done..tp ga muncul apa2..blank..
Ditunggu kelanjutannya,,kalau bisa jangan lama-lama pak,,makash buat tutorialnya,,
hehe… bentar ya… lg sibuk…
bahannya sudah ada sih sampe “tamat”… tinggal format ulang & memilah2 per bagian aja…