Latar Belakang Masalah
MapServer adalah
applikasi Open Source yang memungkinkan sebuah data peta diakses
melalui web. Teknologi ini pertama kali dikembangkan oleh Universitas Minesotta
Amerika Serikat. Hadirnya MapServer menjadikan pekerjaan membuat Peta Digital
menjadi lebih mudah dan interaktif. Interaktif peta disini diartikan bahwa
pengguna dapat dengan mudah melihat dan mengubah tampilan peta seperti zoom,
rotate, dan menampilkan informasi (seperti menampilkan info jalan) dan
analisis( seperti menentukan rute perjalanan) pada permukaan geografi.
Pembahasan
Dan Solusi Masalah
MapProxy
MapProxy adalah proxy
open source untuk data geospasial. Ini cache, mempercepat dan mengubah data
dari layanan peta yang ada dan melayani setiap desktop atau web GIS klien.
Fitur MapProxy
Cache
Tile
MapProxy adalah server
ubin (WMS-C, TMS, WMTS, KML SuperOverlays). Bunyinya data dari:
·
sumber WMS
(1.0.0-1.3.0)
·
sumber TMS / WMTS
·
Mapserver dan
konfigurasi Mapnik
·
setiap TileCache, Google Maps atau Bing sumber kompatibel
Fitur lainnya:
·
data cache pada filesystem, sebagai MBTiles atau di dalam CouchDB
·
reproject sumber WMS
ke SRS lainnya
·
toko gambar yang identik hanya sekali (misalnya ubin laut)
·
menanamkan watermark
di ubin
·
menggabungkan
beberapa sumber
·
sumber batas untuk
daerah poligon
·
masih banyak lagi
WMS
MapProxy juga penuh WMS compliant
server dan mendukung klien WMS (desktop dan web).
Mendukung tanggapan WMS dari data cache:
·
menggabungkan ubin dan sisik atau gambar memproyeksi ulang
·
mempercepat WMS ada
10 sampai 100 kali
dan mengalir layanan WMS:
·
permintaan
multi-threaded
·
menggabungkan
berbagai sumber
·
menambahkan
transparansi ke lapisan buram
·
memproyeksi ulang
on-the-fly
Ini juga mendukung
kombinasi dari lapisan cache dan mengalir.
Fitur lainnya:
·
menanggapi
`permintaan GetLegendGraphic`
·
cascade `` permintaan GetFeatureInfo`` dengan XSL
transformasi opsional
·
sumber batas untuk
daerah poligon
·
mengkonversi versi
WMS dan format gambar
·
dukungan untuk non-data citra raster seperti Dems
Keamanan
MapProxy dilengkapi dengan API keamanan
yang fleksibel yang memungkinkan Anda untuk menambahkan kontrol yang mantap
atas jasa dan lapisan. Anda bahkan dapat
membatasi akses dari lapisan tunggal untuk luasan poligon.
Penyemaian
Anda dapat pre-menghasilkan cache ubin untuk kinerja yang lebih baik - ini
disebut pembibitan. Beberapa fitur unik:
·
fine-grained kontrol atas wilayah benih
dengan Shapefiles, PostGIS atau geometri WKT
·
multi-threaded permintaan, meta-genteng membelah dan
encoding gambar
·
dioptimalkan strategi pembibitan (bekerja _with_
cache database Anda)
Fitur lainnya
Anda dapat menggunakan MapProxy untuk meng-upgrade SDI Anda tanpa menyentuh
server yang ada:
·
menawarkan proyeksi bahwa sumber Anda tidak mendukung
·
versi tawaran protokol dan format
gambar yang sumber Anda tidak mendukung
·
menggabungkan
beberapa lapisan dan server
·
menyembunyikan server
WMS
·
menambahkan watermark dan garis atribusi ke gambar
·
dan lain-lain
MapProxy standar
compliant dan bekerja dengan spesifikasi terbuka berikut:
·
OGC WMS 1.0.0, 1.1.0,
1.1.1, 1.3.0
·
OGC WMTS 1.0.0 (KVP
dan tenang)
·
OGC KML 2.2
SuperOverlays
Mulai
Curious? Ingin tahu? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode. Dengan empat baris berikut Anda dapat menginstal MapProxy dan semua dependensi, membuat konfigurasi baru dan mulai MapProxy dalam mode pembangunan.
sudo aptitude install python-imaging python-yaml libproj0
sudo easy_install mapproxy
mapproxy-util create -t base-config ./
mapproxy-util serve-develop ./mapproxy.yaml
MapServer adalah sebuah lingkungan pengembangan bersifat sumber
terbuka (open
source) untuk pengembangan aplikasi internet yang memungkinkan pengolahan
spasial. Bisa dijalankan sebagai sebuah program CGI atau melalui Mapscript yang mendukung
beberapa bahasa pemrograman. MapServer dulunya dikembangkan oleh Universitas
Minnesota. MapServer asalnya dikembangkan dengan dukungan NASA, yang membutuhkan
sebuah cara untuk membuat citra satelit mereka bisa tersedia untuk umum.[1]
Instalasi Mapserver
Tahapan instalasi
mapserver dijelaskan di bab ini.
Centos 6
Lakukan instalasi
mapserver melalui repository elgis dengan menambahkan repository elgis terlebih
dahulu, repo elgis sebelumnya juga membutuhkan repo epel
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://elgis.argeo.org/repos/6/elgis-release-6-6_0.noarch.rpm
Terjadi kesalahan
dalam library armadillo di epel. Exclude armadillo dari repo epel karena akan
menyebabkan galat. edit file epel.repo tambahkan exclude=armadillo dan install
armadillo melalui repo lainnya atau download manual.
# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages
for Enterprise Linux 6 -
$basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=
$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
exclude=armadillo*
Instalasi
armadillo
# wget http://elgis.argeo.org/repos/6/elgis/x86_64/gdal-1.9.2-4.el6.x86_64.rpm
# yum install armadillo-3.800.2-1.el6.x86_64.rpm
kemudian
lanjutkan proses instalasi
# yum install gpsbabel
# yum install gdal
# yum install mapserver
# yum install glibc
# yum install libpng libpng-devel
# yum install gd gd-devel
# yum install giflib-devel
# yum install proj-epsg
# rpm -ql mapserver
# /usr/libexec/mapserver -v
Instalasi Mapproxy
Mapproxy
berfungsi untuk melakukan caching agar semua request tidak langsung diteruskan
kepada mapserver. Hal ini dilakukan karena pentingnya menjaga performansi
aplikasi agar load peta tidak terlalu lama. Langkah instalasi mapproxy:
# yum install python-pip python-devel
# pip install MapProxy
Selanjutnya
adalah membuat file config map proxy di dalam direktori /var/mapproxy
# cd /var/
# mapproxy-util create -t base-config mymapproxy
Untuk kebutuhan
akses mapproxy dibutuhkan port 8080 yang kita buka dari iptables atau firewall
os dengan menggunakan perintah :
# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# service iptables save
Setting apache (opsional)
Langkah ini
merupakan langkah pemanggilan mapserver melalui web server Apache, jika anda
sudah menggunakan mapproxy atau seudah melakukan instalasi mapproxy maka anda
tidak diperlukan lagi melakukan langkah instalasi apache ini. Apache web server
membaca mapserver melalui CGI yang merupakan kepanjangan dari Common Gateway
Interface, yaitu menjalankan file mapserver langsung melalui url HTTP .Maka
sebelumnya anda diharuskan untuk melakukan instalasi apache dengan perintah :
# yum install httpd
buat softlink
pada direktori web server atau virtual host yang sudah dibangun
# ln -s /usr/libexec/mapserver /var/www/cgi-bin/mapserv
# mkdir /var/www/html/tmp
# cp /usr/lib64/libmapserver.so /usr/lib64/php-zts/modules
arti sintak
diatas adalah membuat softlink atau shotcut dari /usr/libexec/mapserver di
direktori /var/www/cgi-bin/mapserv
Untuk apache,
edit file /etc/httpd/conf/httpd.conf cari blok dari cgi-bin kita pastikan dari
direktori tersebut bisa menjalankan cgi. Dengan melakukan perubahan pada blok
Directory /var/www/cgi-bin
<Directory
"/var/www/cgi-bin">
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script sh
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Setelah itu
simpan dan restart httpd dengan perintah
# service httpd restart
Untuk kebutuhan
akses mapserver dibutuhkan port 80 yang kita buka dari iptables atau firewall
os dengan menggunakan perintah :
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# service iptables save
jalankan url ini
dibuka
http://192.168.1.253/cgi-bin/mapserv?map=/var/www/html/agm.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=roads&STYLES=&SRS=EPSG:4326&BBOX=94.5011475,-11.007385,141.01947,6.076721&WIDTH=1024&HEIGHT=768&FORMAT=image/png
maka akan keluar
peta Berarti anda sudah berhasil melakukan instalasi
Konfigurasi Mapserver dan MapProxy
Persiapan Data
Buat folder
mapdata di /var terlebih dahulu kemudian pada direktori tersebut buat kembali
direktori dengan nama shp, mapfile, tmp dan common. kemudian taruh file vektor
shapefile peta kita di direktori /vaw/mapdata/shp. Dicontohkan disini adalah
file peta Indonesia berupa kabupaten dan kota. Setelah itu buat mapfile dengan
nama agm.map di direktori mapfile yang berisi :
map
size 640 480
imagetype png8
imagecolor 225 225 225
shapepath
"../shp"
fontset
"../common/fonts/msfontset.txt"
projection
"init=epsg:4326"
end
debug on
web
#imagepath "/var/mapdata/tmp/"
#imageurl "/demoms/tmp/"
metadata
wms_title
"Awangga Geo Map"
wms_srs
"EPSG:4326"
wms_
enable_request
"*"
end
end
outputformat
name
"png256"
driver
"AGG/PNG"
imagemode
"pc256"
extension
"png"
end
outputformat
name
"png"
driver
"AGG/PNG"
imagemode
"rgba"
extension
"png"
mimetype
"image/png"
imagemode RGBA
end
outputformat
name
"png8"
driver
"AGG/PNG"
imagemode
"rgba"
extension
"png"
mimetype
"image/png"
imagemode RGBA
transparent ON
formatoption
"QUANTIZE_FORCE=ON"
formatoption
"QUANTIZE_DITHER=ON"
formatoption
"QUANTIZE_COLORS=250"
end
outputformat
name
"jpg"
driver
"AGG/JPEG"
extension
"jpg"
formatoption
"QUALITY=85"
end
LAYER
NAME base_map
group roads
TYPE POLYGON
STATUS ON
DATA
"00"
POSTLABELCACHE FALSE
PROCESSING
"LABEL_NO_CLIP=ON"
LABELCACHE ON
LABELITEM
"KABKOT"
CLASS
#minscale 10000
maxscale 500000
Name
"indonesia_kab"
STYLE
COLOR 102 255 102
OUTLINECOLOR 200 200 200
SYMBOL 0
END
LABEL
COLOR 0 0 0
OUTLINECOLOR 255 255 255
FONT
"FreeSans"
TYPE truetype
SIZE 8
POSITION CC
PARTIALS TRUE
MINDISTANCE 50
REPEATDISTANCE 9999
END
END
METADATA
"DESCRIPTION"
"Peta Indonesia"
END
END
end
Konfigurasi MapProxy
Edit file
/var/mymapproxy/mapproxy.yaml yang disesuaikan dengan konfigurasi dan data kita
services:
demo:
tms:
use_grid_names:
true
# origin for /tiles service
origin:
'nw'
kml:
use_grid_names:
true
wmts:
# use restful access to WMTS
restful:
true
# this is the default template for MapProxy
restful_template:
'/{Layer}/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.{Format}'
# and also allow KVP requests
kvp:
true
md:
# metadata used in capabilities documents for WMTS
# if the md option is not set, the metadata of the WMS will be used
title: Awangga GeoMap
abstract: This is the Awangga GeoMap.
online_resource: http://www.awangga.net/
contact:
person: Rolly Maulana Awangga
position: Software Engineer
organization: Belant Persada
address: Jl. Ligar Nyawang No.2
city: Bandung
postcode: 40191
country: Indonesia
phone: +62(0)813-12000-300
fax: +62(0)813-12000-300
email: rolly@awang.ga
# multiline strings are possible with the right indention
access_constraints:
This service is intended
for Sekretariat Negara Only.
The data is under development on Sekretarian Negara Republik Indonesia.
(http://setneg.go.id/)
fees:
'None'
wms:
md:
title: MapProxy WMS Proxy
abstract: This is a minimal MapProxy example.
layers:
- name: agm
title: Awangga Geo Map - www.awangga.net
sources: [agm_cache]
caches:
agm_cache:
grids: [webmercator]
sources: [agm_
source]
sources:
agm_
source:
type: mapserver
req:
layers: roads
map: /var/mapdata/
mapfile/agm.map
coverage:
bbox: [94.5011475, -11.007385, 141.01947, 6.076721]
srs:
'EPSG:4326'
mapserver:
binary: /usr/libexec/mapserver
working_dir: /var/mapdata/tmp
supported_srs: [
'EPSG:4326']
grids:
webmercator:
base: GLOBAL_WEBMERCATOR
globals:
Setelah itu kita
coba jalankan maproxy dengan perintah :
# mapproxy-util serve-develop mapproxy.yaml -b 0.0.0.0
Kemudian kita
buka demo nya di alamat : http://192.168.1.253:8080/demo/
kemudian masuk ke menu WMS atau WMTS PNG dimana 192.168.1.253 adalah alamat
server yang kita install.
Kesimpulan Dan Saran
Fungsi utama dari MapServer adalah melakukan pembacaan
data dari banyak sumber dan menempatkannya kedalam layer-layer secara bersamaan
menjadi file graphic. Salah satu layernya bisa saja berupa gambar satelit.
Setiap layer saling overlay satu dengan lainnya dan ditampilkan kedalam web
browser
Referensi
Data
Diri
Nama :
Ketut Adi Wijanarko
NPM :
1144031
Kelas :
D4 Teknik Informatika 3D
Mata Kuliah : Sistem Informasi Geografis
Kampus :
Politeknik Pos Indonesia
URL
Github
https://github.com/KetutAdiW/sig-ketut-adi-wijanarko-1144031-d4-ti-3d-poltekpos/blob/master/doc/kuliah/pertemuan%208/pertemuan8.md