Bab 01 Mengenal Mapserver
-
Upload
anthony-hardin -
Category
Documents
-
view
90 -
download
16
Transcript of Bab 01 Mengenal Mapserver
Bab 1Mengenal MapServer
1.1 Tentang MapServer
MapServer (http://mapserver.gis.umn.edu) 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 projek ForNet (sebuah projek untuk manajemen sumber daya alam) yang disponsori NASA (National Aeronautics and Space Administration). Support NASA dilanjutkan dengan dikembangkan projek TerraSIP untuk manajemen data lahan. Saat ini, karena sifatnya yang terbuka (open source), pengembangan MapServer dilakukan oleh pengembang dari berbagai negara.
Panduan Menggunakan MapServer
Pengembangan MapServer menggunakan berbagai aplikasi open source atau freeware seperti Shapelib (http://shapelib.maptools.org) untuk baca/tulis format data Shapefile, FreeType (http://www.freetype.org) untuk merender karakter, GDAL/OGR (http://www.remotesensing.org/gdal) untuk baca/tulis berbagai format data vektor maupun raster, dan Proj.4 (http://www.remotesensing.org/proj) 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 ataupun bentuk lain.
MapServer mempunyai fiturfitur berikut:
• 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 operasioperasi spasial dapat dilakukan dengan cepat
• dapat dikembangkan (customizable), dengan keluaran yang dapat diatur menggunakan filefile 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 ditiled
(dibagibagi menjadi sub bagian yang lebih kecil sehingga proses untuk mengambil dan menampilkan gambar dapat dipercepat)
• dapat menggambarkan elemen peta secara otomatis: skala grafis, peta indeks dan legenda peta
• menggunakan skala dalam penggambaran objek spasial
Bab 1: Mengenal MapServer
• dapat menggambarkan peta tematik yang dibangun menggunakan ekspresi lojik mapun 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 sistem proyeksi secara on the fly
Saat ini, selain dapat mengakses MapServer sebagai program CGI, kita dapat mengakses MapServer sebagai modul MapScript, melalui berbagai bahasa skrip: PHP, Perl, Python atau Java. Akses fungsifungsi MapServer melalui skrip akan lebih memudahkan pengembangan aplikasi. Pengembang dapat memilih bahasa yang paling familiar.
1.2 Sejarah Perkembangan MapServer
Sampai mencapai status seperti sekarang, MapServer berevolusi melalui berbagai tahapan. Di bawah ini tahuntahun penting perkembangan MapServer:
1994Xerox Parc Map Viewer dibuat. Aplikasi ini merupakan aplikasi web pertama yang menampilkan data spasial secara interaktif. Kode program aplikasi ini sendiri bersifat tertutup, tetapi keberadaannya memunculkan ide untuk pengembangan MapServer selanjutnya.
1995BW CAW Interactive Mapping dibuat. Aplikasi ini digunakan untuk sistem pengambilan keputusan berbasis GIS, dengan komponen pemetaan di web.
1996Projek ForNet dilaksanakan. Projek ini dilaksanakan oleh Universitas Minesotta dan Minesotta DNR, atas dana dari NASA.
Panduan Menggunakan MapServer
1997MapServer versi 1.0 dirilis. Ditulis dalam bahas C, dan merupakan produk dari projek ForNet di tahun sebelumnya. Versi ini menggunakan library GD (http://www.boutell.com/gd) untuk penggambaran peta, dan Shapelib untuk akses data spasial dalam format Shapefile.
1998MapServer versi 2.0 dirilis. Versi ini merupakan versi pertama yang dishare di luar projek ForNet, tepatnya Australia's Environmental Resource Information Network (ERIN). Pada versi ini ditambahkan dukungan sistem proyeksi dengan menggunakan library Proj.4 yang dikembangkan USGS (United States Geological Survey).
2000Projek TerraSIP dilaksanakan, sekaligus MapServer versi 3.0 dirilis. Versi ini merupakan versi pertama yang dirilis ke publik sebagai progam open source. Versi ini sudah mendukung data raster dalam format TIFF menggunakan library libTIFF, dan karakter TrueType sudah didukung menggunakan library FreeType.
2001Mapscript versi 1.0 dirilis, bersamaan dengan rilis MapServer versi 3.2. Aplikasi tersebut dibangun menggunakan tool SWIG (Simplified Wrapper and Interface Generator, http://www.swig.org). Beberapa pengembang dari Kanada mengembangkan versi pertama dengan bahasa pemrograman skrip PHP (http://www.php.net).
2002MapServer versi 3.5 dirilis, dengan dukungan terhadap data spasial berbasis DBMS, baik PostgreSQL PostGIS maupun SDE (Spatial Database Engine) dari ESRI. MapServer versi 3.6 juga dirilis tahun ini dengan dukungan terhadap spesifikasi WMS (Web Mapping Services) yang dikeluarkan oleh OGC (Open Geospatial Consortium).
2003MapServer User Meeting (MUM) yang pertama dilaksanakan.
Bab 1: Mengenal MapServer
MapServer versi 4.0 dirilis. Versi ini mendukung keluaran dalam 24 bit warna (true color), juga memungkinkan keluaran dalam format PDF dan SWF.
2004MapServer versi 4.4 dirilis. Versi ini mengikuti spesifikasi WMS (Web Mapping Services) yang dikeluarkan oleh OGC (Open Geospatial Consortium)
1.3 Pengetahuan Dasar yang Dibutuhkan
Dalam pengembangan aplikasi berbasis MapServer, diperlukan beberapa pengetahuan dasar berikut:
• Pengetahuan tentang peta dijital, antar lain meliputi skala, format, bentuk, koordinat dan sistem proyeksi. Pengetahuan dalam bidang ini sangat penting karena peta dijital memang merupakan data utama yang akan dikelola MapServer. Pengetahuan tentang bagaimana editing peta, konversi antar format data, atau transformasi koordinat peta juga diperlukan terutama jika data yang dikelola cukup besar dan terdiri dari beragam format data dan sistem koordinat.
• Pengetahuan tentang sistem operasi dan server web pada tempat di mana MapServer akan dipasang. Minimal kita harus tahu misalnya bagaimana cara memasang web server, memasang MapServer dan aplikasi lain yang dibutuhkan. Lebih jauh lagi pengetahuan tentang masalah keamanan (security) dan keandalan (performance) server kita.
• Pengetahuan tentang struktur dan cara penanganan file berformat HTML. Informasi yang dihasilkan MapServer akan dikirim ke klien (web browser) dalam format HTML.
• Pengetahuan tentang pemrograman di web, misalnya dengan menggunakan PHP di sisi server atau JavaScript di sisi klien. Aplikasi MapServer umumnya bersifat dinamis dan interaktif, sehingga hampir dipastikan kita perlu melakukan penyesuaian (cusomizing) dengan menggunakan bahasa pemrograman.
Panduan Menggunakan MapServer
Beberapa framework seperti Chameleon (http://chameleon.maptools.org) atau CartoWeb (http://cartoweb.org) memang dapat mengurangi beban pekerjaan pemrograman, tetapi pemrograman tetap saja akan diperlukan.
• Pengetahuan tentang basis data, karena data spasial hampir tidak pernah lepas dari informasi lain dalam basis data. Sebuah objek spasial biasanya memiliki atribut yang melekat misalnya sebuah area kabupaten memilik dua buah kode: kode propinsi dan kode kabupaten. Informasi lain seperti demografi, sumber daya alam, statistik pertumbuhan ekonomi dan sebagainya, biasanya tersimpan terpisah dalam sebuah basis data. Pengetahuan kita tentang basis data akan dapat memperkaya informasi objek spasial yang dikelola dengan MapServer.
Buku ini tentu saja tidak memadai untuk memahami secara mendalam seluruh bidang kajian di atas, dan hanya akan memfokuskan diri pada masalah yang sangat erat kaitannya dengan instalasi, konfigurasi dan pemrograman aplikasi berbasis MapServer.
Pembaca sangat disarankan untuk mempelajari topiktopik di atas secara lebih mendalam melalui buku atau media lain yang berkompeten. Materi yang harus dipahami terutama tentang struktur file HTML dan pengembangan aplikasi di web menggunakan bahasa pemrograman PHP. Buku ini mengasumsikan pembaca sudah familiar dengan kedua materi tersebut.
1.4 Arsitektur Umum Aplikasi Pemetaan di Web
Bentuk umum arsitektur aplikasi berbasis peta di web dapat dilihat pada gambar di bawah ini:
Bab 1: Mengenal MapServer
Gambar 3.1:Arsitektur umum aplikasi peta berbasis web
Pada gambar di atas, interaksi antara klien dengan server berdasar skenario request dan respon. Web browser di sisi klien mengirim request ke server web. Karena server web tidak memiliki kemampuan pemrosesan peta, maka request berkaitan dengan pemrosesan peta akan diteruskan oleh server web ke server aplikasi dan MapServer. Hasil pemrosesan akan dikembalikan lagi melalui server web, terbungkus dalam bentuk file HTML atau applet1.
Arsitektur aplikasi pemetaan di web dibagi menjadi dua pendekatan sebagai berikut:
• Pendekatan Thin Client
Pendekatan ini memfokuskan 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 sebarang web browser. Kelemahan utama pendekatan ini menyangkut keterbatasan opsi interaksi dengan user yang kurang fleksibel.
• Pendekatan Thick Client
1 Komponen perangkat lunak yang compliant dengan Java dan berjalan pada konteks aplikasi web di komputer klien.
Panduan Menggunakan MapServer
Pada pendekatan ini, pemrosesan data dilakukan di sisi klien menggunakan beberapa teknologi seperti kontrol ActiveX2 atau applet. Kontrol ActiveX atau applet akan dijalankan di klien untuk memungkinkan web browser menangani 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 akan berkurang.
Tidak seperti pada pendekatan thin client, data akan dikirim ke klien dalam bentuk data vektor yang disederhanakan. Pemrosesan dan penggambaran kembali akan dilakukan di sisi klien. Dengan cara demikian, pengembang aplikasi dapat lebih fleksibel dalam menentukan prosedur interaksi aplikasi dengan user. Kelemahan dari pendekatan ini, harus ada tambahan aplikasi yang dipasang di komputer klien (kontrol ActiveX atau applet tadi).
MapServer menggunakan pendekatan thin client. Semua pemrosesan dilakukan di sisi server. Informasi peta dikirimkan ke web browser di sisi klien dalam bentuk file gambar (JPG, PNG, GIF atau TIFF). Untungnya, saat ini kelemahan pendekatan thin client ini dalam hal interaksi dengan user sudah jauh berkurang dengan adanya framework aplikasi seperti Chameleon atau CartoWeb.
1.5 Komponen Pembentuk MapServer
Pengembangan MapServer sebagai sebuah aplikasi open source, banyak memanfaatkan aplikasi lain yang juga bersifat open source. Sedapat mungkin menggunakan aplikasi yang sudah tersedia jika memang memenuhi kebutuhan, untuk menghemat sumber daya dan waktu pengembangan. Bahasan kita tentang komponen MapServer akan dibagi menjadi empat kategori berikut: komponen untuk akses data spasial, komponen untuk penggambaran peta, komponen untuk menangani proyeksi peta on the fly, dan komponen pendukung. Keempat komponen tersebut akan dibahas pada beberapa sub bab di
2 Teknologi yang dikembangkan Microsoft untuk memungkinkan komunikasi antar software.
Bab 1: Mengenal MapServer
bawah ini.
1.5.1 Komponen Untuk Akses Data Spasial
Komponen pada kelompok ini bertugas untuk menangai baca/tulis data spasial, baik yang tersimpan sebagai file maupun tersimpan pada DBMS.
1.5.1.1 Shapelib
Shapelib (http://shapelib.maptools.org/) merupakan library yang ditulis dalam bahasa C, untuk keperluan baca tulis format data Shapefile (*.SHP) yang didefinisikan ESRI (Environmental System Research Institute). Format Shapefile umum digunakan oleh berbagai aplikasi Sistem Informasi Geografik untuk menyimpan data vektor simpel (tanpa topologi) dengan atribut. Pada MapServer, format data Shapefile merupakan format data default.
Kode Shapelib sekarang dikelola oleh Frank Warmerdam, salah seorang kontributor yang banyak berkontribusi pada projekprojek aplikasi berbasis peta open source.
1.5.1.2 GDAL/OGR
GDAL (Geographic Data Abstraction Library, http://www.gdal.org) merupakan library yang berfungsi sebagai sebagai penerjemah (translator) untuk berbagai format data raster. Library ini memungkinkan abstraksi untuk semua format data yang didukung, sehingga beragam format data tadi akan terlihat sebagai sebuah data model abstrak. Keberadaan data model abstrak tunggal akan memudahkan pengembang aplikasi karena dapat menggunakan antarmuka yang seragam untuk semua format data.
MapServer menggunakan library GDAL untuk mengakses format data
Panduan Menggunakan MapServer
raster berikut:
• Arc/Info ASCII Grid• Arc/Info Binary Grid (.adf)• AIRSAR Polarimetric• Microsoft Windows Device Independent Bitmap (.bmp) • BSB Nautical Chart Format (.kap)• VTP Binary Terrain Format (.bt)• CEOS • DODS / OPeNDAP• USGS DOQ (.doq) • Military Elevation Data (.dt0, .dt1)• ERMapper Compressed Wavelets (.ecw) • ESRI .hdr Labelled • ENVI .hdr Labelled Raster • Envisat Image Product (.n1) • EOSAT FAST Format • FITS (.fits) • Graphics Interchange Format (.gif) • GRASS Rasters • TIFF / GeoTIFF (.tif) • Hierarchical Data Format Release 4 (HDF4) • Erdas Imagine (.img) • Atlantis MFF2e • Image Display and Analysis (WinDisp) • ILWIS Raster Map (.mpr,.mpl)• Japanese DEM (.mem) • JPEG JFIF (.jpg) • JPEG2000 (.jp2, .j2k) • NOAA Polar Orbiter Level 1b Data Set (AVHRR) • Erdas 7.x .LAN and .GIS • In Memory Raster
Bab 1: Mengenal MapServer
• Atlantis MFF • Multiresolution Seamless Image Database • Meteosat Second Generation • NDF • NITF • NetCDF • OGDI Bridge • PCI .aux Labelled • PCI Geomatics Database File • Portable Network Graphics (.png) • PCRaster (.map) • Netpbm (.ppm,.pgm) • Swedish Grid RIK (.rik) • RadarSat2 XML (product.xml) • USGS SDTS DEM (*CATD.DDF) • Raster Matrix Format (*.rsw, .mtw) • SAR CEOS • USGS ASCII DEM (.dem) • X11 Pixmap (.xpm)
OGR merupakan library dengan fungsionalitas yang identik, untuk beragam format data vektor. Kode OGR sekarang ini digabung dalam kode library GDAL, dan dapat digunakan untuk keperluan akses format data vektor berikut:
• Arc/Info Binary Coverage• Comma Separated Value (.csv)• DODS/OPeNDAP • ESRI Shapefile• FMEObjects Gateway • GML• IHO S57 (ENC)• Mapinfo File
Panduan Menggunakan MapServer
• Microstation DGN• MySQL • OGDI Vectors • ODBC • Oracle Spatial• PostgreSQL• SDTS• SQLite• UK .NTF • U.S. Census TIGER/Line• VRT Virtual Datasource
Dari daftar di atas, MySQL, Oracle Spatial, PostgreSQL dan SQLite merupakan DBMS yang dapat dijadikan sebagai media penyimpan data spasial. Format data lain disimpan dalam bentuk file atau sekumpulan file.
1.5.2 Komponen Untuk Penggambaran Peta
MapServer akan mengirimkan tampilan peta berupa gambar. Kita dapat memilih apa format data gambar yang akan digunakan. Beberapa komponen di bawah ini berperan dalam membentuk gambar peta yang dihasilkan oleh MapServer.
1.5.2.1 libpng
Libpng (http://www.libpng.org) merupakan library yang digunakan untuk baca gambar dalam format PNG.
1.5.2.2 libjpeg
Bab 1: Mengenal MapServer
Libjpeg (http://www.ijg.org) merupakan library yang digunakan untuk baca gambar dalam format JPG/JPEG.
1.5.2.3 GD
Library GD (http://www.boutell.com/gd) digunakan MapServer untuk menggambar objek geografis seperti garis, poligon atau bentuk geometris lain. GD juga dapat digunakan untuk menghasilkan gambar dalam format PNG, JPEG, selain menggunakan libpng atau libjpeg secara langsung.
1.5.2.4 FreeType
FreeType (http://freetype.sourceforge.net/index2.html) merupakan library yang digunakan MapServer untuk menampilkan tulisan menggunakan font TrueType.
1.5.3 Komponen Untuk Menangani Proyeksi Peta
Library Proj.4 (http://proj.maptools.org) digunakan MapServer untuk menangani sistem proyeksi peta. Aplikasi ini dikembangkan pertama kali oleh Gerald Evenden.
1.5.4 Komponen Pendukung
1.5.4.1 Zlib
Zlib (http://www.zlib.net) dibutuhkan oleh library GD untuk keperluan kompresi data gambar.
Panduan Menggunakan MapServer
1.5.4.2 Regex
Library ini digunakan MapServer untuk keperluan menangani ekspresi regular.ins
1.6 Sistematika Penulisan Buku
Buku ini dibagi dalam tiga belas bab yang dikelompokkan menjadi lima bagian di bawah ini:
Bagian I: Pengantar
Bagian ini merupakan pengantar sekaligus basis pengetahuan untuk mengikuti bahasan pada bagian selanjutnya. Bahasan pada bagian ini meliputi babbab berikut:
• Bab 1: Mengenal MapServerBab ini yang sedang anda baca sekarang, dan menjelaskan tentang apa itu MapServer, fungsifungsi yang dapat ditangani dan sejarah perkembangannya.
• Bab 2: Mengenal Peta DijitalBab ini menjelaskan berbagai karakter peta dijital yang perlu dikenali.
Bagian II: Instalasi MapServer
Instalasi MapServer bisa merupakan pekerjaan yang cukup rumit, mengingat banyaknya komponen yang harus dipasang dan saling berhubungan. Bagian ini membahas proses instalasi MapServer, baik sebagai program CGI maupun Mapscript untuk bahasa pemrograman PHP. Instalasi dapat dilakukan pada sistem operasi Windows dan beberapa distribusi Linux: Fedora, Slackware dan Debian. Bagian ini meliputi babbab berikut:
• Bab 3: Instalasi MapServer Di WindowsBab ini menjelaskan prosedur instalasi MapServer dan PHP/Mapscript di Windows, dengan bundel MS4W (MapServer for Windows, http://maptools.org/ms4w/) yang
Bab 1: Mengenal MapServer
menggunakan web server Apache, maupun instalasi MapServer dan PHP/Mapscript di atas web server Microsoft IIS (Internet Information Services).
• Bab 4: Instalasi MapServer Di FedoraBab ini menjelaskan prosedur instalasi MapServer dan PHP/Mapscript di Linux distribusi Fedora.
• Bab 5: Instalasi MapServer Di SlackwareBab ini menjelaskan prosedur instalasi MapServer dan PHP/Mapscript di Linux distribusi Slackware.
• Bab 6: Instalasi MapServer Di DebianBab ini menjelaskan prosedur instalasi MapServer dan PHP/Mapscript di Linux distribusi Debian.
Bagian III: Konfigurasi MapServer
Kita akan berhubungan dengan berbagai file konfigurasi ketika bekerja dengan MapServer. Bagian ini akan membahas struktur filefile konfigurasi tersebut. Bagian ini meliputi babbab berikut:
• Bab 7: Struktur File *.MAPFile *.MAP (berupa teks dengan ektensi .MAP, merupakan file konfigurasi utama MapServer. Pada file ini diatur halhal mengenai data spasial yang akan ditampilkan, format gambar peta hasil keluaran, kedalaman warna yang akan digunakan, penggunaan label, pewarnaan objek dan sebagainya.
• Bab 8: Menggunakan MapLabMapLab (http://maptools.org/maplab/) merupakan utiliti berbasis web yang dapat digunakan untuk mengatur konfigurasi aplikasi berbasis MapServer secara visual. Dengan menggunakan MapLab, kita bisa membuat file *.MAP dengan panduan antarmuka grafis. Kita bahkan bisa secara otomatis melakukan deployment dari aplikasi yang kita buat.
• Bab 9: Struktur File TemplateFile lain yang digunakan sebagai konfigurasi MapServer berupa filefile template, baik untuk menampilkan legenda peta (legend template), untuk mengatur layout tampilan maupun untuk menampilkan hasil query informasi. Bab ini menjelaskan penggunaan beberapa jenis file template yang
Panduan Menggunakan MapServer
dapat digunakan pada MapServer.
Bagian IV: MapServer Sebagai Program CGI
Bagian ini membahas penggunaan MapServer sebagai program CGI. Penggunaaan MapServer sebagai program CGI umumnya menyertakan file *.MAP dan file template sebagai parameter. Bagian ini meliputi babbab berikut:
• Bab 10: Menggunakan MapServer Sebagai Program CGIBab ini membahas tentang penggunaan MapServer sebagai program CGI, termasuk parameter apa saja yang dapat dilewatkan.
Bagian V: Pengembangan Aplikasi Berbasis MapServer
Bagian ini membahas halhal yang berkaitan dengan pengembangan aplikasi berbasis MapServer. Bagian ini meliputi babbab berikut:
• Bab 11: Pemrograman Dengan PHP/MapscriptBab ini menjelaskan tentang teknikteknik pemrograman dengn menggunakan PHP/Mapscript. Deskripsi kelaskelas penting dan bagaimanan menggunakannya untuk membangun aplikasi web dinamik.
• Bab 12: Instalasi Framework ChameleonChameleon (http://chameleon.maptools.org) merupakan framework untuk memudahkan pengembangan aplikasi berbasis MapServer. Bab ini akan membahas prosedur instalasi Chameleon pada berbagai platform.
• Bab 13: Menggunakan Framework ChameleonBab ini menjelaskan penggunaan Chameleon untuk membangun aplikasi berbasis MapServer dengan cepat, menggunakan beragam tag HTML khusus dan skrip PHP untuk inisialisasi.
Buku ini disertai dengan CDROM yang berisi aplikasi dan contoh data agar pembaca dapat mengikuti langsung penjelasanpenjelasan dalam buku ini. Aplikasi dan data tersebut meliputi:
• Aplikasi MapServer untuk platform Windows dan Linux
Bab 1: Mengenal MapServer
(distribusi Fedora, Slackware dan Debian).• Framework Chameleon, untuk dipasang pada platform
Windows maupun Linux• Beberapa contoh peta yang diambil dari beberapa situs web,
untuk keperluan mencoba langkahlangkah yang dijelaskan di buku ini.
Penjelasan mengenai cara menggunakan aplikasi dan data yang terdapat pada CDROM sertaan buku, akan dijelaskan pada babbab yang bersesuaian.
Panduan Menggunakan MapServer