Situs Peta

Foto os

Sistem Informasi Geografis atau sering disebut dengan GIS (Geographic Information System) bisa disebut sebagai teknik pembuatan peta. Kita memang sudah bisa menggunakan Google Earth untuk menampilkan peta, lengkap dengan berbagai informasi tambahan lainnya seperti jalan, lokasi gunung berapi, dst. Namun Google Earth hanya menganut sebuah sistem koordinat saja. Sedangkan di dalam GIS ada berbagai sistem koordinat pemetaan. Disamping itu Google Earth membutuhkan akses Internet. Mungkin Anda tertarik untuk membuat peta yang bisa diakses melalui web browser secara offline mode ? Atau Anda tertarik membuat semacam Google Earth ?

Coba lihat http://map.rab.co.id/node/10, situs itu dibuat menggunakan:

  • Mapserver sebagai pembuat peta
  • OpenLayers yang menampilkan peta (map client berbasis AJAX)
  • Drupal sebagai web framework yang mewadahi OpenLayers.

Berikut ini langkah pemasangannya:

  • Pasanglah Ubuntu dimana kami telah mencobanya menggunakan Hardy (8.04).
    Update 28-09-2010
    Juga sudah teruji pada Lucid (10.04)
  • Pasang PostgreSQL karena ke depan kita akan menggunakan PostGIS untuk menyimpan berbagai data peta. PostGIS merupakan modul khusus yang membuat akses data peta menjadi efisien. Singkatnya pasang paket berikut ini:
    # apt-get install cgi-mapserver php5-mapscript postgresql-8.3-postgis libapache2-mod-php5 php5-pgsql msttcorefonts

    Update 28-09-2010
    Untuk Lucid
    # apt-get install cgi-mapserver php5-mapscript postgresql-8.4-postgis libapache2-mod-php5 php5-pgsql msttcorefonts

    Ujilah keberadaan mapserver dengan mengakses http://localhost/cgi-bin/mapserv di web browser Firefox, seharusnya pesan berikut ini tampil:
    No query information to decode. QUERY_STRING is set, but empty.

    Jika jawabannya Not found carilah lokasi cgi-bin sesuai domain Anda. Konfigurasi default ada di /etc/apache2/sites-available/default. Kemudian salinlah /usr/lib/cgi-bin/mapserv ke direktori cgi-bin tadi. Lalu coba lagi di browser.
  • Pasang Drupal 6 dan modul Mapping kit. Di menu admin/build/modules aktifkan:
    1. Map context
    2. OpenLayers map client

    Sedangkan di menu admin/user/permissions aktifkan access mapcontext bagi user anonymous agar publik dapat melihatnya.

  • Kemudian masuk ke menu admin/mappingkit/openlayers
    Update 28-09-2010
    Pada Mapping Kit versi 6.x-1.x-dev ada di admin/mappingkit/mapclient/openlayers

    Perhatikanlah bagian Release dimana tertulis versi Stable OpenLayers yang didukung Mapping Kit. Lalu carilah versi yang dimaksud di http://openlayers.org/download, contohnya untuk OpenLayers versi 2.8 ada di

    http://openlayers.org/download/OpenLayers-2.8.tar.gz

    Masuklah ke konsole, unduh filenya lalu ekstrak di direktori sites/default/files.
    Kembali ke browser masih di menu admin/mappingkit/openlayers pada bagian Path masukkan:

    sites/default/files/OpenLayers-2.8/OpenLayers.js

    Sesuaikanlah versinya, lalu klik Save configuration.

Selanjutnya membuat dokumen peta. Sebagai contoh kita bisa ambil Itasca, sebuah wilayah di Amerika Serikat. Ekstrak di direktori cgi-bin sehingga menjadi cgi-bin/itasca.

Anda bisa mengujinya di browser hanya dengan mapserv - tanpa Drupal - pada

http://localhost/cgi-bin/mapserv?map=itasca/itasca.map&mode=map

Seharusnya peta sederhana sudah muncul. Jika belum cermati lagi konfigurasi di atas.

Kembali ke Drupal. Buatlah node bertipe Map context melalui menu node/add/mapcontext:

  • Title: Itasca
  • Width: 720, panjang tampilan dalam pixel
  • Height: 360, lebar tampilan dalam pixel

Isian berikut ini sesuai file cgi-bin/itasca/itasca.map

  • SRS: EPSG:26915
  • Min. X: 388107.6344
  • Min. Y: 5203120.88406
  • Max. X: 500896.33902
  • Max. Y: 5310243.30614

Selanjutnya menambahkan layer, masih berdasarkan itasca.map:

  • Service: /cgi-bin/mapserv?map=itasca/itasca.map
  • Version: 1.0.0
  • Layer names: lakespy2,ctyrdln3,ctyrdln3_anno
  • Title: Jalan

Simpan. Seharusnya peta sudah mulai tampak. Klik tombol tambah ( + ) untuk memperbesar (zoom in) agar tampak garis-garis jalan dan kode jalannya.

Database Peta
Peta pada contoh di atas disimpan pada file di direktori cgi-bin/itasca. Kali ini kita akan gunakan database PostgreSQL untuk menyimpan peta.

  • Misalkan pada contoh di atas Anda menggunakan konfigruasi database seperti ini:
    • Database user: cepy
    • Database name: map

    Pasang procedural language PL/pgSQL:

    $ sudo su postgres -c "createlang plpgsql map"

  • Pasang sistem PostGIS:
    $ sudo su postgres -c "psql map -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql"
    $ sudo su postgres -c "psql map -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql"

    Untuk PostgreSQL 8.4 maka:
    $ sudo su postgres -c "psql map -f /usr/share/postgresql/8.4/contrib/postgis.sql"
    $ sudo su postgres -c "psql map -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql"
  • Atur izin penggunaan tabel:
    $ sudo su postgres -c "psql map -c \"GRANT SELECT ON spatial_ref_sys TO PUBLIC\""
    $ sudo su postgres -c "psql map -c \"GRANT ALL ON geometry_columns TO cepy\""
  • Unduh indonesia.sql_.gz dan masukkan ke database:
    $ wget http://jabber.rab.co.id/files/indonesia.sql_.gz
    $ gunzip indonesia.sql_.gz
    $ psql -U cepy -h localhost -f indonesia.sql_ map
  • Buatlah direktori tmp yang sejajar dengan direktori cgi-bin. Direktori ini digunakan untuk meletakkan file error.log. File ini akan diisi oleh cgi-bin/mapserv jika terjadi sesuatu.
    $ mkdir tmp
    $ touch tmp/error.log
  • Buatlah file cgi-bin/indonesia.map:
    MAP
      NAME INDONESIA
      STATUS ON
      SIZE 720 360
      EXTENT 95.2599 -10.2012 140.423 5.57731
      IMAGECOLOR 255 255 255
      IMAGETYPE PNG
      DEBUG on
      CONFIG "MS_ERRORFILE" "../tmp/error.log"
     
      PROJECTION
        "proj=longlat"
        "ellps=WGS84"           # Lihat QGis, Layer, Properti, Metadata
        "datum=WGS84"
        "nodefs"
      END
     
      SYMBOL
        NAME 'circle'
        TYPE ELLIPSE
        POINTS 1 1 END
        FILLED TRUE
      END
     
      LAYER
        NAME province
        TYPE POLYGON            # Lihat QGis, Layer, Properti, Metadata
        STATUS DEFAULT
        DATA 'the_geom FROM indonesia.propinsi'
        CONNECTION 'user=cepy password=1234 dbname=map host=localhost port=5432'
        CONNECTIONTYPE postgis
     
        CLASS
          NAME 'Propinsi'
          STYLE
            COLOR 49 117 185
            OUTLINECOLOR 80 80 80
          END
        END
     
        METADATA
          WMS_SRS "EPSG:4326"   # Skala 500km
        END
      END
     
      LAYER
        NAME city
        TYPE POINT
        STATUS ON
        DATA 'the_geom FROM indonesia.kota'
        CONNECTION 'user=cepy password=1234 dbname=map host=localhost port=5432'
        CONNECTIONTYPE postgis
     
        CLASS
          NAME 'Kota'
          STYLE
            SYMBOL 'circle'
            SIZE 7
            COLOR 220 35 0
          END
        END
     
        METADATA
          WMS_SRS "EPSG:4326"
        END
      END
     
      LAYER
        NAME city_label
        TYPE ANNOTATION
        STATUS ON
        LABELITEM 'name'
        DATA 'the_geom FROM indonesia.kota'
        CONNECTION 'user=cepy password=1234 dbname=map host=localhost port=5432'
        CONNECTIONTYPE postgis
     
        CLASS
          STYLE
            COLOR 255 255 255
          END
          LABEL
            MINFEATURESIZE 40
            MINDISTANCE 150
            POSITION auto
            SIZE medium
            COLOR 0 0 0
          END
        END
     
        METADATA
          WMS_SRS "EPSG:4326"
        END
      END
     
    END
  • Uji di browser dengan url
    http://localhost/cgi-bin/mapserv?map=indonesia.map&mode=map
  • Kembali ke Drupal. Buatlah node bertipe Map context melalui menu node/add/mapcontext:

    • Title: Indonesia
    • Width: 720, panjang tampilan dalam pixel
    • Height: 360, lebar tampilan dalam pixel

    Isian berikut ini sesuai file cgi-bin/indonesia.map

    • SRS: EPSG:4326
    • Min. X: 95.2599
    • Min. Y: -10.2012
    • Max. X: 140.423
    • Max. Y: 5.57731

    Selanjutnya menambahkan layer, masih berdasarkan cgi-bin/indonesia.map:

    • Service: /cgi-bin/mapserv?map=indonesia.map
    • Version: 1.0.0
    • Layer names: province
    • Title: Propinsi

    Simpan. Seharusnya peta Indonesia sudah mulai tampak.

    Selamat mencoba.

    LampiranUkuran
    indonesia.sql_.gz268.85 KB
    indonesia.map_.gz677 bita