Anda di halaman 1dari 17

Bab1 MengenalMapServer

1.1 Tentang MapServer


MapServer (http://mapserver.gis.umn.edu) merupakan aplikasi freewaredanopensourceyangmemungkinkankitamenampilkandata spasial (peta) di web. Aplikasi ini pertama kali dikembangkan di UniversitasMinesotta,AmerikaSerikatuntukprojek ForNet (sebuah projekuntukmanajemensumberdayaalam)yangdisponsoriNASA (National Aeronautics and Space Administration). Support NASA dilanjutkandengandikembangkanprojekTerraSIPuntukmanajemen data lahan. Saat ini, karena sifatnya yang terbuka (open source), pengembanganMapServerdilakukanolehpengembangdariberbagai negara.

Panduan Menggunakan MapServer

Pengembangan MapServer menggunakan berbagai aplikasi open source atau freeware sepertiShapelib(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 proyeksipeta. Pada bentuk paling dasar, MapServer berupa sebuah program CGI (CommonGatewayInterface). Programtersebutakandieksekusidi webserver,danberdasarkanbeberapaparametertertentu(terutama konfigurasidalambentukfile*.MAP)akanmenghasilkandatayang kemudianakandikirimkewebbrowser,baikdalambentukgambar petaataupunbentuklain. MapServermempunyaifiturfiturberikut:

menampilkandataspasialdalamformatvektorseperti:Shapefile (ESRI),ArcSDE(ESRI),PostGISdanberbagaiformatdatavektor laindenganmenggunakanlibraryOGR menampilkan data spasial dalam format raster seperti: TIFF/GeoTIFF, EPPL7 dan berbagai format data raster lain denganmenggunakanlibraryGDAL menggunakan quadtree dalam indexing data spasial, sehingga operasioperasispasialdapatdilakukandengancepat dapatdikembangkan(customizable),dengankeluaranyangdapat diaturmenggunakanfilefiletemplate dapatmelakukanseleksiobjekberdasarnilai,berdasartitik,area, atauberdasarsebuahobjekspasialtertentu mendukungrenderingkarakterberupafontTrueType mendukungpenggunaandatarastermaupunvektoryangditiled (dibagibagimenjadisubbagianyanglebihkecilsehinggaproses untukmengambildanmenampilkangambardapatdipercepat) dapatmenggambarkanelemenpetasecaraotomatis:skalagrafis, petaindeksdanlegendapeta menggunakanskaladalampenggambaranobjekspasial

Bab 1: Mengenal MapServer

dapat menggambarkan peta tematik yang dibangun menggunakanekspresilojikmapunekspresireguler dapatmenampilkanlabeldariobjekspasial,denganlabeldapat diatursedemikianrupasehinggatidaksalingtumpangtindih konfigurasidapatdiatursecaraontheflymelaluiparameteryang ditentukanpadaURL dapatmenanganiberagamsistemproyeksisecaraonthefly

Saat ini, selain dapat mengakses MapServer sebagai program CGI, kitadapatmengaksesMapServersebagaimodulMapScript,melalui berbagai bahasa skrip: PHP, Perl, Python atau Java. Akses fungsi fungsi MapServer melalui skrip akan lebih memudahkan pengembangan aplikasi. Pengembang dapat memilih bahasa yang palingfamiliar.

1.2 Sejarah Perkembangan MapServer


Sampai mencapai status seperti sekarang, MapServer berevolusi melalui berbagai tahapan. Di bawah ini tahuntahun penting perkembanganMapServer: 1994 XeroxParcMapViewerdibuat.Aplikasiinimerupakanaplikasiweb pertama yang menampilkan data spasial secara interaktif. Kode programaplikasiinisendiribersifat tertutup,tetapikeberadaannya memunculkanideuntukpengembanganMapServerselanjutnya. 1995 BWCAWInteractiveMappingdibuat. Aplikasiinidigunakanuntuk sistem pengambilan keputusan berbasis GIS, dengan komponen pemetaandiweb. 1996 ProjekForNetdilaksanakan.ProjekinidilaksanakanolehUniversitas MinesottadanMinesottaDNR,atasdanadariNASA.
Panduan Menggunakan MapServer

1997 MapServerversi1.0 dirilis. Ditulisdalam bahas C,danmerupakan 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 formatShapefile. 1998 MapServerversi2.0dirilis.Versiinimerupakanversipertamayang dishare di luar projek ForNet, tepatnya Australia's Environmental ResourceInformation Network(ERIN).Pada versiiniditambahkan dukungansistemproyeksidenganmenggunakan library Proj.4yang dikembangkanUSGS(UnitedStatesGeologicalSurvey). 2000 ProjekTerraSIPdilaksanakan,sekaligusMapServerversi3.0dirilis. Versi ini merupakan versi pertama yang dirilis ke publik sebagai progam opensource.Versiinisudahmendukungdatarasterdalam format TIFF menggunakan library libTIFF, dan karakter TrueType sudahdidukungmenggunakanlibraryFreeType. 2001 Mapscript versi1.0dirilis, bersamaan dengan rilisMapServer versi 3.2.Aplikasitersebutdibangunmenggunakan tool SWIG(Simplified Wrapper and Interface Generator, http://www.swig.org). Beberapa pengembang dari Kanada mengembangkan versi pertama dengan bahasapemrogramanskripPHP(http://www.php.net). 2002 MapServerversi3.5dirilis,dengandukunganterhadapdataspasial berbasis DBMS, baik PostgreSQL PostGIS maupun SDE (Spatial DatabaseEngine)dariESRI.MapServerversi3.6jugadirilistahunini dengandukunganterhadapspesifikasiWMS(WebMappingServices) yangdikeluarkanolehOGC(OpenGeospatialConsortium). 2003 MapServer User Meeting (MUM) yang pertama dilaksanakan.

Bab 1: Mengenal MapServer

MapServerversi4.0dirilis.Versiinimendukungkeluarandalam24 bitwarna (truecolor),jugamemungkinkan keluarandalamformat PDFdanSWF. 2004 MapServerversi4.4dirilis.VersiinimengikutispesifikasiWMS(Web Mapping Services) yang dikeluarkan oleh OGC (Open Geospatial Consortium)

1.3 Pengetahuan Dasar yang Dibutuhkan


Dalam pengembangan aplikasi berbasis MapServer, diperlukan beberapapengetahuandasarberikut:

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 beragamformatdatadansistemkoordinat. Pengetahuantentangsistemoperasidanserverwebpadatempat 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)serverkita. Pengetahuan tentang struktur dan cara penanganan file berformat HTML. Informasi yang dihasilkan MapServer akan dikirimkeklien(webbrowser)dalamformatHTML. 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. Pengetahuantentangbasisdata,karenadataspasialhampirtidak pernahlepasdariinformasilaindalambasisdata.Sebuahobjek spasialbiasanyamemilikiatributyangmelekatmisalnyasebuah areakabupatenmemilikduabuahkode:kodepropinsidankode kabupaten.Informasilainsepertidemografi,sumberdayaalam, statistik pertumbuhan ekonomi dan sebagainya, biasanya tersimpan terpisah dalam sebuah basis data. Pengetahuan kita tentang basis data akan dapat memperkaya informasi objek spasialyangdikeloladenganMapServer.

Buku ini tentu saja tidak memadai untuk memahami secara mendalam seluruh bidang kajian di atas, dan hanya akan memfokuskandiripadamasalahyangsangateratkaitannyadengan instalasi,konfigurasidanpemrogramanaplikasiberbasisMapServer. Pembaca sangat disarankan untuk mempelajari topiktopik di atas secara lebih mendalam melalui buku atau media lain yang berkompeten.Materiyangharusdipahamiterutamatentangstruktur fileHTMLdanpengembanganaplikasidiwebmenggunakanbahasa pemrogramanPHP.Bukuinimengasumsikanpembacasudahfamiliar dengankeduamateritersebut.

1.4 Arsitektur Umum Aplikasi Pemetaan di Web


Bentukumumarsitekturaplikasiberbasispetadiwebdapatdilihat padagambardibawahini:

Bab 1: Mengenal MapServer

Gambar 3.1: Arsitektur umum aplikasi peta berbasis web

Padagambardiatas,interaksiantarakliendenganserverberdasar skenario request dan respon. Web browser di sisi klien mengirim requestkeserverweb.Karenaserverwebtidakmemilikikemampuan pemrosesan peta, maka request berkaitan dengan pemrosesan peta akanditeruskanolehserverwebkeserveraplikasidanMapServer. Hasil pemrosesan akan dikembalikan lagi melalui server web, terbungkusdalambentukfileHTMLatauapplet1. Arsitekturaplikasipemetaandiwebdibagimenjadiduapendekatan sebagaiberikut:

PendekatanThinClient Pendekataninimemfokuskandiripadasisiserver.Hampirsemua 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. Kelemahanutamapendekataninimenyangkutketerbatasanopsi interaksidenganuseryangkurangfleksibel.

PendekatanThickClient

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 untukmemungkinkanwebbrowsermenanganiformatdatayang tidak dapat ditangani oleh web browser dengan kemampuan standard. Dengan adanya pemrosesan di klien, maka transfer dataantarakliendenganwebserverakanberkurang. Tidaksepertipadapendekatan thinclient,data akandikirimke klien dalam bentuk data vektor yang disederhanakan. Pemrosesan dan penggambaran kembali akan dilakukan di sisi klien. Dengan cara demikian, pengembang aplikasi dapatlebih fleksibel dalam menentukan prosedur interaksi aplikasidengan user. Kelemahan dari pendekatan ini, harus ada tambahan aplikasiyangdipasangdikomputerklien(kontrolActiveXatau applettadi). MapServermenggunakanpendekatanthinclient.Semuapemrosesan dilakukandisisiserver.Informasipetadikirimkankewebbrowserdi sisi klien dalam bentuk file gambar (JPG, PNG, GIF atau TIFF). Untungnya,saatinikelemahanpendekatan thinclient inidalamhal interaksi dengan user sudah jauh berkurang dengan adanya frameworkaplikasisepertiChameleonatauCartoWeb.

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 memangmemenuhikebutuhan,untukmenghematsumberdayadan waktu pengembangan. Bahasan kita tentang komponen MapServer akandibagimenjadiempatkategoriberikut:komponenuntukakses dataspasial,komponenuntukpenggambaranpeta,komponenuntuk menangani proyeksi peta on the fly, dan komponen pendukung. Keempatkomponentersebutakandibahaspadabeberapasubbabdi
2 Teknologi yang dikembangkan Microsoft untuk memungkinkan komunikasi antar software.

Bab 1: Mengenal MapServer

bawahini.

1.5.1KomponenUntukAksesDataSpasial
Komponen pada kelompok ini bertugas untuk menangai baca/tulis data spasial, baik yang tersimpan sebagai file maupun tersimpan padaDBMS.

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 ResearchInstitute). Format Shapefile umumdigunakanolehberbagai aplikasi Sistem Informasi Geografik untuk menyimpan data vektor simpel(tanpatopologi)denganatribut.PadaMapServer,formatdata Shapefilemerupakanformatdatadefault. Kode Shapelib sekarang dikelola oleh Frank Warmerdam, salah seorang kontributor yang banyak berkontribusi pada projekprojek aplikasiberbasispetaopensource.

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 memungkinkanabstraksiuntuksemuaformatdatayangdidukung, sehinggaberagamformatdatatadiakanterlihatsebagaisebuahdata model abstrak. Keberadaan data model abstrak tunggal akan memudahkan pengembang aplikasi karena dapat menggunakan antarmukayangseragamuntuksemuaformatdata. MapServermenggunakanlibraryGDALuntukmengaksesformatdata

Panduan Menggunakan MapServer

rasterberikut:

Arc/InfoASCIIGrid Arc/InfoBinaryGrid(.adf) AIRSARPolarimetric MicrosoftWindowsDeviceIndependentBitmap(.bmp) BSBNauticalChartFormat(.kap) VTPBinaryTerrainFormat(.bt) CEOS DODS/OPeNDAP USGSDOQ(.doq) MilitaryElevationData(.dt0,.dt1) ERMapperCompressedWavelets(.ecw) ESRI.hdrLabelled ENVI.hdrLabelledRaster EnvisatImageProduct(.n1) EOSATFASTFormat FITS(.fits) GraphicsInterchangeFormat(.gif) GRASSRasters TIFF/GeoTIFF(.tif) HierarchicalDataFormatRelease4(HDF4) ErdasImagine(.img) AtlantisMFF2e ImageDisplayandAnalysis(WinDisp) ILWISRasterMap(.mpr,.mpl) JapaneseDEM(.mem) JPEGJFIF(.jpg) JPEG2000(.jp2,.j2k) NOAAPolarOrbiterLevel1bDataSet(AVHRR) Erdas7.x.LANand.GIS InMemoryRaster

Bab 1: Mengenal MapServer

AtlantisMFF MultiresolutionSeamlessImageDatabase MeteosatSecondGeneration NDF NITF NetCDF OGDIBridge PCI.auxLabelled PCIGeomaticsDatabaseFile PortableNetworkGraphics(.png) PCRaster(.map) Netpbm(.ppm,.pgm) SwedishGridRIK(.rik) RadarSat2XML(product.xml) USGSSDTSDEM(*CATD.DDF) RasterMatrixFormat(*.rsw,.mtw) SARCEOS USGSASCIIDEM(.dem) X11Pixmap(.xpm)

OGR merupakan library dengan fungsionalitas yang identik, untuk beragamformatdatavektor.KodeOGRsekaranginidigabungdalam kode library GDAL, dan dapat digunakan untuk keperluan akses formatdatavektorberikut:

Arc/InfoBinaryCoverage CommaSeparatedValue(.csv) DODS/OPeNDAP ESRIShapefile FMEObjectsGateway GML IHOS57(ENC) MapinfoFile

Panduan Menggunakan MapServer

MicrostationDGN MySQL OGDIVectors ODBC OracleSpatial PostgreSQL SDTS SQLite UK.NTF U.S.CensusTIGER/Line VRTVirtualDatasource

Daridaftardiatas,MySQL,OracleSpatial,PostgreSQLdanSQLite merupakan DBMS yang dapat dijadikan sebagai media penyimpan data spasial. Format data lain disimpan dalam bentuk file atau sekumpulanfile.

1.5.2KomponenUntukPenggambaranPeta
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 gambarpetayangdihasilkanolehMapServer.

1.5.2.1 libpng
Libpng(http://www.libpng.org)merupakan library yangdigunakan untukbacagambardalamformatPNG.

1.5.2.2 libjpeg

Bab 1: Mengenal MapServer

Libjpeg (http://www.ijg.org) merupakan library yang digunakan untukbacagambardalamformatJPG/JPEG.

1.5.2.3 GD
Library GD (http://www.boutell.com/gd) digunakan MapServer untukmenggambarobjekgeografissepertigaris,poligonataubentuk geometris lain. GD juga dapat digunakan untuk menghasilkan gambardalamformatPNG,JPEG,selainmenggunakan libpng atau libjpegsecaralangsung.

1.5.2.4 FreeType
FreeType (http://freetype.sourceforge.net/index2.html) merupakan library yang digunakan MapServer untuk menampilkan tulisan menggunakanfontTrueType.

1.5.3KomponenUntukMenanganiProyeksiPeta
LibraryProj.4(http://proj.maptools.org)digunakanMapServeruntuk menanganisistemproyeksipeta.Aplikasiinidikembangkanpertama kaliolehGeraldEvenden.

1.5.4KomponenPendukung
1.5.4.1 Zlib
Zlib (http://www.zlib.net) dibutuhkan oleh library GD untuk keperluankompresidatagambar.

Panduan Menggunakan MapServer

1.5.4.2 Regex
Library ini digunakan MapServer untuk keperluan menangani ekspresiregular.ins

1.6 Sistematika Penulisan Buku


Bukuinidibagidalamtigabelasbabyangdikelompokkanmenjadi limabagiandibawahini: BagianI:Pengantar Bagianinimerupakanpengantarsekaligusbasispengetahuanuntuk mengikutibahasanpadabagianselanjutnya.Bahasanpadabagianini meliputibabbabberikut: Bab1:MengenalMapServer Babiniyangsedangandabacasekarang,danmenjelaskan tentang apa itu MapServer, fungsifungsi yang dapat ditanganidansejarahperkembangannya. Bab2:MengenalPetaDijital Babinimenjelaskanberbagaikarakterpetadijitalyangperlu dikenali. BagianII:InstalasiMapServer Instalasi MapServer bisa merupakan pekerjaan yang cukup rumit, mengingat banyaknya komponen yang harus dipasang dan saling berhubungan.BagianinimembahasprosesinstalasiMapServer,baik sebagaiprogramCGImaupunMapscriptuntukbahasapemrograman PHP. Instalasi dapat dilakukan pada sistem operasi Windows dan beberapadistribusiLinux:Fedora,SlackwaredanDebian.Bagianini meliputibabbabberikut: Bab3:InstalasiMapServerDiWindows Bab 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 MapServerdanPHP/MapscriptdiataswebserverMicrosoft IIS(InternetInformationServices). Bab4:InstalasiMapServerDiFedora Bab ini menjelaskan prosedur instalasi MapServer dan PHP/MapscriptdiLinuxdistribusiFedora. Bab5:InstalasiMapServerDiSlackware Bab ini menjelaskan prosedur instalasi MapServer dan PHP/MapscriptdiLinuxdistribusiSlackware. Bab6:InstalasiMapServerDiDebian Bab ini menjelaskan prosedur instalasi MapServer dan PHP/MapscriptdiLinuxdistribusiDebian.

BagianIII:KonfigurasiMapServer Kita akan berhubungan dengan berbagai file konfigurasi ketika bekerjadenganMapServer.Bagianiniakanmembahasstrukturfile filekonfigurasitersebut.Bagianinimeliputibabbabberikut: Bab7:StrukturFile*.MAP File*.MAP(berupateksdenganektensi.MAP,merupakanfile konfigurasi utama MapServer. Pada file ini diatur halhal mengenaidataspasialyangakanditampilkan,formatgambar petahasilkeluaran,kedalamanwarnayangakandigunakan, penggunaanlabel,pewarnaanobjekdansebagainya. Bab8:MenggunakanMapLab MapLab (http://maptools.org/maplab/) merupakan utiliti berbasis web yang dapat digunakan untuk mengatur konfigurasi aplikasi berbasis MapServer secara visual. DenganmenggunakanMapLab,kitabisamembuatfile*.MAP denganpanduanantarmukagrafis.Kitabahkanbisasecara otomatismelakukandeploymentdariaplikasiyangkitabuat. Bab9:StrukturFileTemplate File 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 templateyang

Panduan Menggunakan MapServer

dapatdigunakanpadaMapServer. BagianIV:MapServerSebagaiProgramCGI BagianinimembahaspenggunaanMapServersebagaiprogramCGI. Penggunaaan MapServer sebagai program CGI umumnya menyertakanfile*.MAPdanfiletemplatesebagaiparameter.Bagian inimeliputibabbabberikut: Bab10:MenggunakanMapServerSebagaiProgramCGI Bab ini membahas tentang penggunaan MapServer sebagai program CGI, termasuk parameter apa saja yang dapat dilewatkan. BagianV:PengembanganAplikasiBerbasisMapServer Bagianinimembahashalhalyangberkaitandenganpengembangan aplikasiberbasisMapServer.Bagianinimeliputibabbabberikut: Bab11:PemrogramanDenganPHP/Mapscript Bab ini menjelaskan tentang teknikteknik pemrograman dengn menggunakan PHP/Mapscript. Deskripsi kelaskelas penting dan bagaimanan menggunakannya untuk membangunaplikasiwebdinamik. Bab12:InstalasiFrameworkChameleon Chameleon (http://chameleon.maptools.org) merupakan framework untuk memudahkan pengembangan aplikasi berbasis MapServer. Bab ini akan membahas prosedur instalasiChameleonpadaberbagaiplatform. Bab13:MenggunakanFrameworkChameleon Bab ini menjelaskan penggunaan Chameleon untuk membangun aplikasi berbasis MapServer dengan cepat, menggunakan beragam tag HTML khusus dan skrip PHP untukinisialisasi. Buku ini disertai dengan CDROM yang berisi aplikasi dan contoh dataagarpembacadapatmengikutilangsungpenjelasanpenjelasan dalambukuini.Aplikasidandatatersebutmeliputi: Aplikasi MapServer untuk platform Windows dan Linux

Bab 1: Mengenal MapServer

(distribusiFedora,SlackwaredanDebian). Framework Chameleon, untuk dipasang pada platform WindowsmaupunLinux Beberapacontohpetayangdiambildaribeberapasitusweb, untuk keperluan mencoba langkahlangkah yang dijelaskan dibukuini.

Penjelasan mengenai cara menggunakan aplikasi dan data yang terdapatpadaCDROMsertaanbuku,akandijelaskanpadababbab yangbersesuaian.

Panduan Menggunakan MapServer