Showing posts with label MAPSERVER. Show all posts
Showing posts with label MAPSERVER. Show all posts

Sunday 13 November 2016

Mengapa Menggunakan MapServer ?




Setahun yang lalu (sekarang tahun 2016), saya skripsi menggunakan mapserver. MapServer berguna untuk memproses shapefile menjadi image.

Gambar 1. Output Mapsever dan Geoserver



MapServer juga dapat menghasilkan output berupa geojson, namun menurut pengalaman saya proses  menghasilkan output ini lebih lambat dibanding GeoServer. Geojson yang dikirim ke browser akan di proses menjadi gambar peta. Peta yang detail akan memiliki banyak titik, semakin sesuai dengan gambaran wilayah sebenarnya maka titik-titik tersebut semakin banyak. Jika titik-titik itu banyak memory geojson semakin besar, sehingga data yang dikirim dari dari server juga semakin besar/berat/lambat. Proses pembuatan titik menjadi garis / polygon pada browser juga akan lebih lama.


Gambar 2. Geojson Indonesia level kabupaten

Geojson Indonesia level kabupaten ada 11 MB. Dengan geojson dan kecepatan internet maksimum 150KBps  maka peta yang disajikan menjadi lambat atau tidak responsive.

Agar tetap peta yang ditampilkan tetap responsive maka kita dapat menggunakan output image. Contoh penggunaan image sebagai output server kita dapat lihat google maps, gambar/image peta akan keluar satu persatu dalam bentuk segiempat (Gambar 3).  

Gambar 3. Penampilan peta pada google maps


Keunggulan
Gambar 4. Satu kotak image output MapServer berukuran 7 KB
Pada penampilan peta menggunakan output image MapServer lebih unggul daripada GeoServer.
MapServer memiliki  pengaturan style  yang beragam untuk  menampilkan image. Pengaturan style ini dilakukan dengan cara menuliskan script yang tersimpan pada server. File yang berisi script ini disebut mapscript. Script ini bukan bahasa programmer walaupun didalamnya terdapat fungsi looping dan ada class. Untuk mempelajari script ini dapat dibuka official website-nya. : http://www.mapserver.org/output/agg.html#introduction
Dengan  menggunakan leaflet, gambar peta yang dihasilkan dapat dioverlay dengan Google maps, MapBox dan service peta lainnya . Penggunaan leaflet akan membuat peta lebih interaktif.

kelemahan 
Berdasarkan pengalaman kelemahan dari MapServer ini yaitu 
1. Pembuatan output peta lebih lama karena harus mempelajari mapscript
2. Pembuatan output lebih sulit dibanding geoserver . GeoServer hanya klik-klik mouse sedangkan MapServer harus mengetik script seperti membuat program
3. Dokumentasi mapserver sedikit sehingga harus tatap membaca official website-nya 

Contoh aplikasi yang dibuat menggunakan MapServer:

Gambar 4. contoh aplikasi
Gambar 5. contoh aplikasi

Aplikasi di atas merupakan aplikasi skripsi saya bersama tiga teman. Ada banyak fitur yang ada pada aplikasi tersebut. Selain frontend yang menampilkan peta, ada juga backend yang memberikan fasilitas pada user untuk menginput data.

Sekian dan Trimakasih










Monday 29 June 2015

Cara Menangani Bad Request Karena Ajax Method Post di YII2

Bad request terjadi karena security yang dilakukan diYII2 security ini untuk menangani Cross-site request forgery / CSRF, ada 2 cara pada YII agar tetap bisa melakukan Ajax dengan method POST 

cara pertama dengan mendisable security . mendisable security cara yang tidak disarankan karena security jadi lemah..

cara kedua menggunakan token: (tambahkan: _csrf : csrfToken seperti dibawah)
csrfToken mempunyai nilai yang berganti2 sebagai kunci masuk ke server dari client

        $.ajax({
            url: 'url',
            type: "post",
            dataType: "json",
            data:{_csrf : csrfToken,var:'value'},
            success: function(data) {
 

           }});

Saturday 11 April 2015

Mengambil Koordinat dan Atribut Shapefile format JSON menggunakan Mapserver

Mengambil Koordinat dan Atribut Shapefile format JSON menggunakan Mapserver

------------------------------------------------------------------------------------------------------
pertama buat file .map
MAP # tanda awal mapfile
NAME "Indonesia" #
EXTENT 92.59 -19.443566666 142.88 14.1298 # B1,L1; B2,L2
STATUS ON #
UNITS DD # satuan derajat
SIZE 520 400 # ukuran image
SHAPEPATH "C:\ms4w\apps\latihan\data"
IMAGECOLOR 255 255 255
#
# Mulai pendefinisian layers
#
OUTPUTFORMAT
    NAME          "png"
    EXTENSION     "png"
    MIMETYPE      "image/png"
    DRIVER         AGG/PNG
    IMAGEMODE      RGBA
    FORMATOPTION  "INTERLACE=OFF"
  END

  OUTPUTFORMAT
    NAME 'json'
    DRIVER 'TEMPLATE'
    MIMETYPE 'application/json'
    FORMATOPTION 'FILE=C:/ms4w_alpha/apps/wms/mapfile/wms.js'
    EXTENSION "json"
  END

PROJECTION
  "init=epsg:4326"
END

 WEB
     TEMPLATE "C:\ms4w\apps\latihan\html\tmplb.html"
IMAGEPATH "/ms4w/tmp/ms_tmp/"
        IMAGEURL "/ms_tmp/"
          METADATA
      'ows_title'       'Peta wilayah Indonesia'
      'ows_onlineresource'  'http://localhost/wms?'
      'wms_srs'       'EPSG:4326 EPSG:3857'
      'wms_abstract'        'WMS'
      'wms_enable_request'  '*'
      'wms_encoding'        'utf-8'
      'wfs_getfeature_formatlist' 'json'
    END

  END # objek web
LAYER
NAME "propinsi"
DATA "C:\ms4w\apps\latihan\data\IDN_adm2.shp"
STATUS ON
TYPE POLYGON
UNITS DD
METADATA
      'ows_title' 'Indonesia (Tematik)'
      'wfs_srs'       'EPSG:4326 EPSG:3857'
      'gml_include_items'   'all' ## Optional (serves all attributes for layer)
      'gml_featureid'     'id'
      'wfs_enable_request'  '*'
    END
CLASS
NAME "Batas propinsi"
STYLE
COLOR 179 243 251
OUTLINECOLOR 0 0 0
END # style
END # class
END # Akhir definisi layer
#
END # Akhir mapfile 
---------------------------------------------------------------------------------------------------------------------------
kedua template HTML


<!-- MapServer Template -->
<html>
<head>
  <title> Feature Inline mapserver</title>
</head>
<body>
<h2> Features Inline MapServer</h2>
    <form method="GET" action="[program]">

<img border=1 src=[img]>
</form>
</body>
</html>
---------------------------------------------------------------------------------------------------------------------------
ketiga template json

// mapserver template
[resultset layer=propinsi]
{
  "type": "FeatureCollection",
  "features": [
    [feature trimlast=","]
    {
      "type": "Feature",
      "id": "[id]",
      "nama": "[PROVINSI]",
      "geometry": {
      "type": "MultiPolygon",
      "coordinates": [ {
        "type": "MultiPolygon",
        "coordinates": [[shpxy]]
      }
        ] }
    [/feature]
  ]
}
[/resultset]
 
sumber:
http://mapserver.org/output/template_output.html 
http://mapserver.org/mapfile/template.html (penjelasn koordinat [shpxy] )
--------------------------------------------------------------------------------
 
urlnya : 
localhost/cgi-bin/mapserv?map=c:/ms4w/apps/latihan/map/TestLaflet/map22.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=propinsi&OUTPUTFORMAT=json
 
 
 
 
semoga bisa jadi petunjuk