Anda di halaman 1dari 77

Map Server +

PHP/MapScript
Catur Iswahyudi

Pendahuluan
MapServer merupakan aplikasi freeware dan open
source yang memungkinkan kita menampilkan data
spasial (peta) di web.
Aplikasi ini pertama kali dikembangkan di
Universitas Minesotta, Amerika Serikat untuk proyek
ForNet (sebuah proyek untuk menajemen sumber
daya alam) yang disponsori NASA (Nasional
Aeronautics and Space Administration).
Dukungan NASA dilanjutkan dengan dikembangkan
proyek TerraSIP untuk menajemen data lahan. Saat
ini, karena sifatnya yang terbuka (open source),
pengembangan MapServer dilakukan oleh
pengembang dari berbagai negara

Sebagai web mapping service,


mapserver dapat melakukan berbagai
kegiatan:
Membuat CGI yang berfungsi sebagai
jembatan antara mapserver web server.
Mencari basis data informasi dengan
perantara peta.
Membuat laporan berdasarkan data
tabular (attribut) GIS.

Pengembangan MapServer
menggunakan berbagai aplikasi open
source atau freeware seperti Shapelib
untuk baca/tulis format data Shapefile,
FreeType untuk merender karakter,
GDAL/OGR untuk baca/tulis berbagai
format data vektor maupun raster, dan
Proj.4 untuk menangani beragam
proyeksi peta.

Pada bentuk paling dasar, MapServer


berupa sebuah program CGI (Common
Gateway Interface).
Program tersebut akan dieksekusi di
web server dan berdasarkan beberapa
parameter tertentu (terutama
konfigurasi dalam bentuk file *.MAP)
akan menghasilkan data yang
kemudian akan dikirim ke web browser,
baik dalam bentuk gambar peta atau
bentuk lain.

Dari kegiatan-kegiatan tersebut aplikasi


mapserver terbagi menjadi dua:
Map file
Map script / Map server CGI

Map file berguna untuk mengubah database


spasial menjadi bentuk peta.
Map script berguna untuk membuat tools
aplikasi webGIS sepertipanning, zooming,
identify, dan lainnya.

Sebagai server, mapserver memiliki


beberapa komponen pembentuk untuk
menunjang pembentukan sistem
informasi geografis.
Komponen Penggambaran Peta
Komponen Proyeksi Peta, dan
Komponen Akses Data Spasial

Ketiga komponen tersebut memiliki library


masing-masing.
Untuk penggambaran peta, server akan
menampilkan kepada user peta dalam format
vektor maupun raster. Libpng; library untuk
penampilan peta dalam bentuk .png. Libjpeg;
library untuk penampilan dalam bentuk
.jpeg, dan GD; library untuk penampilan peta
raster dan vektor.

Proyeksi peta memiliki satu library yang


populer yaitu Proj.4. yang memberikan
informasi sistem referensi koordinat dan
datum yang digunakan dalam data spasial.
Sedangkan komponen akses data spasial,
terdapat Shapelib; library untuk mengakses
data spasial dalam bentuk .shapefile
(bentukan format file vector produksi ESRI),
dan GDAL/OGR; library untuk mengakses
data spasial berbagai format yang disetujui
oleh OGC (Open Geospatial Consortium).

Saat ini, selain dapat mengakses


MapServer sebagai program CGI, kita
dapat mengakses MapServer sebagai
modul MapScript, melalui berbagai
bahasa skrip : PHP, Perl, Phyton atau
Java.
Akses fungsi-fungsi MapServer melalui
skrip akan lebih memudahkan
pengembangan aplikasi. Pengembang
dapat memilih bahasa yang paling
familiar.

Fitur MapServer
Menampilkan data spasial dalam format
vektor seperti : Shapefile (ESRI), ArcSDE
(ESRI), PostGIS dan berbagai format data
vektor lain dengan menggunakan library
OGR
Menampilkan data spasial dalam format
raster seperti TIFF/GeoTIFF, EPPL7 dan
berbagai format data raster lain dengan
menggunakan library GDAL
Menggunakan quadtree dalam indexing data
spasial, sehingga operasi-operasi spasial
dapat dilakukan dengan cepat.

Fitur MapServer (2)


Dapat dikembangkan (customizable), dengan
tampilan keluaran yang dapat diatur
menggunakan file-file template
Dapat melakukan seleksi objek berdasar
nilai, berdasar titik, area, atau berdasar
sebuah objek spasial tertentu
Mendukung rendering karakter berupa font
TrueType
Mendukung penggunaan data raster maupun
vektor yang di-tiled (dibagi-bagi menjadi sub
bagian yang lebih kecil sehingga proses
untuk mengambil dan menampilkan gambar

Fitur MapServer (3)


Dapat menggambarkan elemen peta secara
otomatis , skala grafis, peta indeks dan
legenda peta
Dapat menggambarkan peta tematik yang
dibangun menggunakan ekspresi logik
maupun ekspresi reguler
Dapat menampilkan label dari objek spasial,
dengan label dapat diatur sedemikian rupa
sehingga tidak saling tumpang tindih
Konfigurasi dapat diatur secara on the fly
melalui parameter yang ditentukan pada URL
Dapat menangani beragam system proyeksi

Arsitektur Umum Aplikasi


Web GIS

Interaksi antara client-server (request-respon).


Web server menerima request client, akan tetapi
web server tidak memiliki kemampuan
pemrosesan peta, maka diteruskan ke application
server dan map server.
Hasil dikembalikan ke web server berupa14paket file
HTML atau applet.

Arsitektur MapServer

Aplikasi mapserver
sederhana terdiri dari:
Map File - Konfigurasi file teks yang
terstruktur untuk sebuah aplikasi mapserver.
Mendefiniskan bentuk area peta,
memberitahukan dimana data peta dan
konfigurasi dan juga output gambar peta,
dan temporary folder peta.
Mendefinisikan informasi layer termasuk
layer peta dan data atributnya, termasuk
juga sumber data (data source), proyeksi dan
penyimbolan (symbology).
Ekstensi filenya harus berupa .map atau kalo
tidak mapserver tidak akan bisa

Geographic Data - MapServer dapat


menangani berbagai macam tipe data
geografis.
The default format is the ESRI
shapefile.
Ref:
http://www.mapserver.org/introduction.
html#adding-data-to-your-site

HTML Pages - the interface between the user and


MapServer . They normally sit in Web root. In its
simplest form, MapServer can be called to place a
static map image on a html page. To make the map
interactive, the image is placed in an html form on a
page.
CGI programs are stateless, every request they get
is new and they dont remember anything about the
last time that they were hit by your application. For
this reason, every time your application sends a
request to MapServer, it needs to pass context
information (what layers are on, where you are on
the map, application mode, etc.) in hidden form
variables or URL variables.

MapServer CGI - The binary or


executable file that receives requests
and returns images, data, etc. It sits in
the cgi-bin or scripts directory of the
http server. The Web server user must
have execute rights for the directory
that it sits in, and for security reasons,
it should not be in the web root. By
default, this program is called mapserv

HTTP Server - serves up the html


pages when hit by the users browser.
You need a working HTTP (Web) server,
such as Apache or Microsoft Internet
Information Server, on the machine on
which you are installing MapServer.

Arsitektur Web
Mapping
Pendekatan Thin Client
Pendekatan ini menfokuskan diri pada sisi
server. Hampir semua proses dan analisis
data dilakukan berdasarkan request di sisi
server.
Data hasil pemrosesan kemudian dikirimkan
ke klien dalam format standard HTML, yang
di dalamnya terdapat file gambar dalam
format standard (misalnya GIF, PNG atau
JPG) sehingga dapat dilihat menggunakan
sembarang web browser.
Kelemahan utama pendekatan ini

Pendekatan Thick Client


Pada pendekatan ini, pemrosesan data
dilakuakn di sisi klien menggunakan
beberapa teknologi seperti kontrol ActiveX
atau applet.
Kontrol ActiveX atau applet akan dijalankan
di klien untuk memungkinkan web browser
dengan format data yang tidak dapat
ditangani oleh web browser dengan
kemampuan standard.
Dengan adanya pemrosesan di klien, maka
transfer data antara klien dengan web server

MapServer menggunakan pendekatan


thin client. Semua pemrosesan
dilakukan di sisi sever. Informasi peta
dikirinkan ke web browser di sisi klien
dalam bentuk file gambar (JPG, PNG,
GIF atau TIFF).

Komponen Pembentuk
MapServer
Kebutuhan MapServer: Webserver (Apache,
IIS) dan komponen MapServer.

Komponen MapServer dibagi menjadi 4


kategori:
1. Komponen
2. Komponen
3. Komponen
on the fly
4. Komponen

utk akses data spasial


utk penggambaran peta
utk menangani proyeksi peta
pendukung

Komponen Pembentuk
MapServer (2)
1. Komponen untuk Akses Data
Spasial
Digunakan utk baca/tulis data
spasial (file/DBMS).
Meliputi:
Shapelib: library ditulis bahasa C, utk
keperluan baca/tulis format data
Spahefile (*.SHP) by ESRI. Format
Shapefile digunakan utk menyimpan
data vektor sederhana (tanpa topologi)
+ atribut. Pada MapServer shapefile
25
adalah default data type.

Komponen Pembentuk
MapServer (2)
GDAL/OGR (Geofraphic Data
Abstraction Library):

GDAL: library sbg penterjemah berbagai


format data raster. (misal utk akses data:
Arc/Info, ESRI, .gif, TIFF/GeoTIFF, GRASS
raster, dll.
OGR: library utk membaca beragam
format data vektor. Kode OGR digabung
dgn library GDAL utk membaca format
data vektor: Arc/Info, .csv, ESRI, Mapinfo
file, MySQL, ODBC, Oracle Spatial,
PostgreSQL, SQLite, dll.
26

Komponen Pembentuk
MapServer (2)
2. Komponen untuk Penggambaran
Peta
Digunakan utk membentuk gambar peta
oleh MapServer
Meliputi:
libpng: library utk baca/tulis gambar format
PNG.
Libjpeg: library utk baca/tulis format gambar
JPG/JPEG.
GD: library utk menggambar obyek geografis
(garis, poligon, atau bentuk geometris lain).
Juga utk menghasilkan format gambar PNG,
27
JPEG.

Komponen Pembentuk
MapServer (2)
3. Komponen untuk Menangani
Proyeksi Peta
Library Proj.4 yg digunakan utk
menangani sistem proyeksi peta.
4. Komponen Pendukung
Meliputi:
Zlib: dibutuhkan library GD utk kepentingan
kompresi data gambar.
Regex: library utk menangani regular
expression.
28

Map File
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

Tentang Map File

Sebelum benar-benar menggunakan MapServer untuk pertama


kalinya, pengguna harus membuat file teks yang berekstensi
*.map. File yang disebut mapfile tersebut memiliki ketentuanketentuan 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.

Contoh MapFile
Sebagai contoh, berikut ini adalah isi
mapfile sederhana yang dapat
digunakan untuk menampilkan sebuah
layer peta di dalam program aplikasi
browser internet.

Penjelasan
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
600400 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-

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

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.

Class
Objek ini digunakan untuk
mendefinisikan kelas tematik untuk
suatu layer. Setiap layer pasti memiliki
sedikitnya 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.

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

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.

Menampilkan Peta
buat suatu file html yang isinya adalah
sebagai berikut
Simpanlah dengan nama file peta.html di direktori
C:\ms4w\apps\latih\htdocs\

Selanjutnya, buatlah file html baru


yang isinya adalah sebagai berikut:

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 berikut

Oke selamat sampai tahap ini Anda


sudah berhasil menampilkan peta di
browser
itu sudah disebut dengan WebGIS
meskipun masih amat-sangatsederhana-sekali

Layer Ganda
Pada kenyataannya, jarang sekali suatu
peta hanya terdiri dari satu layer saja.
Karena informasi geografis yang
sesungguhnya adalah gabungan dari
beberapa layer sehingga membentuk
suatu informasi peta yang lengkap.
Bagaimana caranya menampilkan
beberapa layer dalam satu peta ?

Skema MapFile

Contoh MapFile 2
Layer

Lanjutan ...

Simpanlah mapfile tersebut dengan nama


kab_kota.map di direktori
C:\ms4w\apps\latih\map\

Menampilkan Layer
Ganda
Buka kembali file
c:\ms4w\apps\latih\htdocs\peta.html dan
ubahlah menjadi seperti berikut ini:

Kemudian, buatlah file html baru


dengan isinya sebagai berikut:

Simpan file tersebut dengan nama


contoh_02.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 Menampilkan Layer Ganda di klik,


akan muncul tampilan peta dengan 2 layer seperti
gambar berikut ini.

Pada peta tersebut terlihat ada 2 peta


yang ditampilkan, yaitu peta Aseanoceania.shp yang berlatar putih dan
peta Propinsi.shp yang berlatar
abu-abu.
Mudah kan?
Jika ingin menambahkan layer lagi,
tinggal tambah saja blok LAYER
END pada mapfile sesuai kebutuhan.
Selamat mencoba

Selanjutnya ?
Simbol danFont (
https://arioss.wordpress.com/2012/05/15/webgi
s-5simbol-dan-font/
)

Peta Tematik
(https://arioss.wordpress.com/2012/05/21/webgis-6pembuatan-peta-tematik/)

Chameleon
Chameleon merupakan framework
yang dapat digunakan untuk
mengembangkan aplikasi GIS berbasis
mapserver secara cepat.
Sudah ada banyak widget yang dapat
disisipkan pada file html untuk
template.
Dengan chameleon setiap perancang
web-GIS dapat mengembangkan
aplikasinya dengan mudah hanya

Komponen Chameleon
CWC (chameleon web-mapping components)
Kumpulan widget, didefinisikan sebagai tags CWC
dalam halaman web html template.
Chameleon server
Berkomunikasi dengan mapserver untuk
menghasilkan dan mengintegrasikan bagian-bagian
yang kemudian membentuk komposisi peta
Mapserver
Mesin peta menghasilkan map image, mengelola
data yang tepetakan dan menangani pemrosesan
geografis.

Chameleon Widgets

CursorPos
KeepSessionAlive
LegendTemplate
MapDHTMLWidget
MapSize
MapTitle
PanMap

Query
Scalebar
SharedResource
UpdateMap
ZoomAllLayers
ZoomIn
ZoomOut

http://www.gommap.org/gommap/docs/gommap_widget_ref
erence.html

Contoh
Membuat situs webGIS
menggunakan mapserver
danphpmapscript
Aplikasi GIS berbasis web yang
menggunakan teknologi mapserver.
Interface menggunakan bahasa dan
fungsi php/mapscript.
Databasenya menggunakan mysql.

Komponen :
Database
Peta Digital
Web GIS

Database

Screenshot

Note !
Database menggunakan MySQL untuk
menyimpan content web; untuk peta
digitalnya digunakan hanya untuk
menyimpan alamat file .map .
Karena MS4W tidak terdapat database
mysql, maka install mysql terlebih
dahulu. Disarankan menggunakan
xampp 1.6. yang cocok dengan ms4w
karena masih menggunakan PHP4.

Selamat Belajar

Ini Amunisinya

Referensi
Tools:
http://www.maptools.org
http://www.mapserver.org
Learning:
http://www.pribadiraharja.com/trihartanto/ebook/
http://mapserver.wordpress.com
http://ri32.wordpress.com
https://arioss.wordpress.com/2011/02/07

Final Project
Buat kelompok (anggota maks. 5 mhsw)
Buat map file untuk layer Map_province, Map_street
dan Map_town.
Sebelumnya, buat tampilan Map_provice menjadi
per-bagian propinsi.
Tampilkan di web menggunakan MapServer.
Buat tampilan di web:
Label nama kota masing-masing
Warna masing-masing poligon propinsi berbeda-beda
Pemberian fitur arah mata angin dan skala

Presentasi Minggu depan (29 Des 2014)