Kamis, 29 Desember 2016

Sistem Informasi Geografis Pertemuan 8 Mapserver Dan Map Proxy


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 is an open source proxy for geospatial data.MapProxy adalah proxy open source untuk data geospasial. It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client. Ini cache, mempercepat dan mengubah data dari layanan peta yang ada dan melayani setiap desktop atau web GIS klien.

Features of MapProxyFitur MapProxy

Tile cacheCache Tile

MapProxy is a tile server (WMS-C, TMS, WMTS, KML SuperOverlays).MapProxy adalah server ubin (WMS-C, TMS, WMTS, KML SuperOverlays). It reads data from: Bunyinya data dari:

·         WMS sources (1.0.0–1.3.0) sumber WMS (1.0.0-1.3.0)

·         TMS/WMTS sources sumber TMS / WMTS

·         Mapserver and Mapnik configurations Mapserver dan konfigurasi Mapnik

·         any TileCache, Google Maps or Bing compatible source setiap TileCache, Google Maps atau Bing sumber kompatibel

Other features: Fitur lainnya:

·         cache data on filesystem, as MBTiles or inside CouchDB data cache pada filesystem, sebagai MBTiles atau di dalam CouchDB

·         reproject WMS sources to other SRS reproject sumber WMS ke SRS lainnya

·         stores identical images just once (eg ocean tiles) toko gambar yang identik hanya sekali (misalnya ubin laut)

·         embed watermark in tiles menanamkan watermark di ubin

·         merge multiple sources menggabungkan beberapa sumber

·         limit sources to polygon areas sumber batas untuk daerah poligon

·         many more masih banyak lagi

WMS WMS

MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). MapProxy juga penuh WMS compliant server dan mendukung klien WMS (desktop dan web). It supports WMS responses from cached data: Mendukung tanggapan WMS dari data cache:

·         merges tiles and scales or reprojects images menggabungkan ubin dan sisik atau gambar memproyeksi ulang

·         accelerates existing WMS 10 to 100 times mempercepat WMS ada 10 sampai 100 kali

and cascaded WMS services: dan mengalir layanan WMS:

·         multi-threaded requests permintaan multi-threaded

·         merges multiple sources menggabungkan berbagai sumber

·         adds transparency to opaque layers menambahkan transparansi ke lapisan buram

·         reprojects on-the-fly memproyeksi ulang on-the-fly

It also supports combinations of cached and cascaded layers. Ini juga mendukung kombinasi dari lapisan cache dan mengalir.

Other features: Fitur lainnya:

·         respond to `GetLegendGraphic` requests menanggapi `permintaan GetLegendGraphic`

·         cascade ``GetFeatureInfo`` requests with optional XSL transformations cascade `` permintaan GetFeatureInfo`` dengan XSL transformasi opsional

·         limit sources to polygon areas sumber batas untuk daerah poligon

·         convert WMS versions and image formats mengkonversi versi WMS dan format gambar

·         support for non-image raster data like DEMs dukungan untuk non-data citra raster seperti Dems

Security Keamanan

MapProxy comes with a flexible security API that allows you to add fine-grained control over services and layers. MapProxy dilengkapi dengan API keamanan yang fleksibel yang memungkinkan Anda untuk menambahkan kontrol yang mantap atas jasa dan lapisan. You can even restrict access of single layers to polygon extents. Anda bahkan dapat membatasi akses dari lapisan tunggal untuk luasan poligon.

Seeding Penyemaian

You can pre-generate the tile cache for better performance – this is called seeding. Anda dapat pre-menghasilkan cache ubin untuk kinerja yang lebih baik - ini disebut pembibitan. Some unique features: Beberapa fitur unik:

·         fine-grained control over the seed area with Shapefiles, PostGIS or WKT geometries fine-grained kontrol atas wilayah benih dengan Shapefiles, PostGIS atau geometri WKT

·         multi-threaded requests, meta-tile splitting and image encoding multi-threaded permintaan, meta-genteng membelah dan encoding gambar

·         optimized seeding strategy (to work _with_ your database cache) dioptimalkan strategi pembibitan (bekerja _with_ cache database Anda)

Other features Fitur lainnya

You can use MapProxy to upgrade your SDI without touching your existing servers: Anda dapat menggunakan MapProxy untuk meng-upgrade SDI Anda tanpa menyentuh server yang ada:

·         offer projections that your sources do not support menawarkan proyeksi bahwa sumber Anda tidak mendukung

·         offer protocol versions and image formats that your sources do not support versi tawaran protokol dan format gambar yang sumber Anda tidak mendukung

·         combine multiple layers and servers menggabungkan beberapa lapisan dan server

·         hide WMS servers menyembunyikan server WMS

·         add watermarks and attribution lines to the images menambahkan watermark dan garis atribusi ke gambar

·         etc. dan lain-lain

MapProxy is standard compliant and works with the following open specifications: MapProxy standar compliant dan bekerja dengan spesifikasi terbuka berikut:

·         OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0 OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0

·         OGC WMTS 1.0.0 (KVP and RESTful) OGC WMTS 1.0.0 (KVP dan tenang)

·         OSGeo TMS 1.0.0 OSGeo TMS 1.0.0

·         OGC KML 2.2 SuperOverlays 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. rresults matching ""No results matching ""

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