Langsung ke konten utama

Cara Membuat Aplikasi GIS Sederhana dengan PHP


Sebelum kita mulai membuat aplikasinya, ada baiknya kita mengetahui terlebih dahulu sistem yang akan kita pakai pada aplikasi GIS yang akan kita buat dan kita menggunakan Google map API untuk menampilkan georafis petanya.

GIS (Geographic Information System) 

GIS adalah singkatan dari Geographic Information System atau system informasi geografis. GIS merupakan suatu alat yang dpat digunakan untuk mengelola (input, manajemen, dan output) data spasial atau data yang bereferensi geografis. Setiap data yang merujuk lokasi di permukaan bumi dapat disebut sebagai data spasial bereferensi geografis. Misalnya data kepadatan penduduk suatu daerah, data jaringan atau saluran dan sebagainya.

Apa sih Google maps API?

Sebelum membahas Google Maps API, kita harus paham dulu dengan API. API adalah kependekan dari Application programming interface. Dengan bahasa yang lebih sederhana, API adalah fungsi fungsi  pemrograman yang disediakan oleh aplikasi atau layanan agar layananan tersebut bisa di integrasikan dengan aplikasi yang kita buat.

Jadi Google maps API adalah fungsi fungsi pemrograman yang disediakan oleh Google maps agar Google maps bisa di integrasikan kedalam Web atau aplikasi yang sedang buat. Contoh sederhanya misalkan anda ingin membuat Sistem informasi Geografis kampus di jogja, dengan memanfaatkan Google Maps API anda bisa membuat GIS tanpa perlu memikirkan Peta Jogja, anda tinggal pake Google maps dan memanggil fungsi fungsi yang dibutuhkan seperti menampilkan peta, menempatkan marker dan sabagainya.

Langkah - langkah :

Pertama kita include script google apinya : load library place untuk geocoder autocomplete dan kita set bahasanya ke bahasa indonesia.

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places&language=id"></script>

Download jquery library : sebelum memulai, silahkan download jquery library dan Jquery UI library-nya.

<script src="jquery.js"></script>

Membuat script untuk menentukan posisi awal

    var dest;
    var directionsDisplay;

    // memanggil service Google Maps Direction
 var directionsService = new google.maps.DirectionsService();
 directionsDisplay = new google.maps.DirectionsRenderer();

    $(document).ready(function() {
        var myOptions = {
            zoom: 4,
            center: new google.maps.LatLng(-2.548926,118.0148634),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        // posisi awal ketika halaman pertama kali dimuat
        var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);

        // memanggil fungsi geocoder autocomplete
        var autocomplete = new google.maps.places.Autocomplete((document.getElementById('dest')),{ types: ['geocode'] });
     
     /* 
      fungsi geolocation pada geocoder ini sangat penting
      agar pencarian daerah tujuan pada textbox ga ngaco 
     */
     if (navigator.geolocation) {
         navigator.geolocation.getCurrentPosition(function(position) {
             var geolocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
             autocomplete.setBounds(new google.maps.LatLngBounds(geolocation,geolocation));
         });
     }

 });

Membuat script trigger untuk menentukan posisi akhir atau tujuan dan jalur rutenya
 
$(document).ready(function() {
  // ketika tombol cari di klik, maka proses pencarian rute dimulai
  $("#cari").click(function(){

   dest = $("#dest").val();

   var defaultLatLng = new google.maps.LatLng(-2.548926,118.0148634);

   /* 
    nah, pada fungsi geolocation disini adalah
    ketika koordinat user berhasil didapat maka peta koordinat yang digunakan
    adalah koordinat user, namun jika tidak berhasil maka koordinat yang digunakan
    adalah koordinat default (pada variable defaultLatLng)
   */
      if (navigator.geolocation) {
          function success(pos) {
              drawMap(pos.coords.latitude,pos.coords.longitude);
          }

          function fail(error) {
              drawMap(defaultLatLng);
          }
          
          navigator.geolocation.getCurrentPosition(success, fail, { maximumAge: 500000, enableHighAccuracy:true, timeout: 6000 });

      } else {
          drawMap(defaultLatLng);  
      }

      function drawMap(lat,lng) {

          var myOptions = {
              zoom: 15,
              center: new google.maps.LatLng(lat,lng),
              mapTypeId: google.maps.MapTypeId.ROADMAP
          };

          var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);

          // kita bikin marker untuk asal dengan koordinat user hasil dari geolocation
          var markerorigin = new google.maps.Marker({
                 position: new google.maps.LatLng(parseFloat(lat),parseFloat(lng)),
                 map: map,
                 title: "Origin",
                 visible:false // kita ga perlu menampilkan markernya, jadi visibilitasnya kita set false
    });

          // membuat request ke Direction Service
          var request = {
     origin: markerorigin.getPosition(), // untuk daerah asal, kita ambil posisi user
        destination: dest, // untuk daerah tujuan, kita ambil value dari textbox tujuan
        provideRouteAlternatives:true, // set true, karena kita ingin menampilkan rute alternatif

        /**
         * kamu bisa tambahkan opsi yang lain seperti
         * avoidHighways:true (set true untuk menghindari jalan raya, set false untuk menonantifkan opsi ini)
         * atau kamu bisa juga menambahkan opsi seperti
         * avoidTolls:true (set true untuk menghindari jalan tol, set false untuk menonantifkan opsi ini)
         */
        travelMode: google.maps.TravelMode.DRIVING // set mode DRIVING (mode berkendara / kendaraan pribadi)
        /**
         * kamu bisa ganti dengan 
         * google.maps.TravelMode.BICYCLING (mode bersepeda)
         * google.maps.TravelMode.WALKING (mode berjalan)
         * google.maps.TravelMode.TRANSIT (mode kendaraan / transportasi umum)
         */
    };


    directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
          directionsDisplay.setDirections(response); 
        }
      });
    // menampiklkan rute pada peta dan juga direction panel sebagai petunjuk text
      directionsDisplay.setMap(map);
      directionsDisplay.setPanel(document.getElementById('directions-panel'));
      
      // menampilkan layer traffic atau lalu-lintas pada peta
      var trafficLayer = new google.maps.TrafficLayer();
      trafficLayer.setMap(map);

      }
  });
 });

Membuat tampilan pada HTML, sehingga dapat tampil pada browser

<input type="text" id="dest" style="width:500px;">
<button type="button" id="cari">Cari Rute</button>
<br><br>
<div id="directions-panel" style="float:right; width:48%; height:600px; overflow:auto;"></div>
<div id="map-canvas" style="width:50%; height:600px;"></div>

Hasil akhir programnya akan seperti dibawah ini :

 

Komentar

Postingan populer dari blog ini

13 Fakta Kerusakan Peringatan Maulid Nabi

Dalam peringatan maulid yang diselenggarakan, sering terjadi kemungkaran, bid'ah dan pelanggaran terhadap syariat Islam. Peringatan maulid itu sendiri tidak pernah diselenggarakan oleh Rasulullah saw, juga tidak oleh para sahabat, tabi'in dan imam yang empat, serta orang-orang yang hidup di abad-abad kejayaan Islam. Lebih dari itu, tak ada dalil syar'i yang menyerukan penyelenggaraan maulid Nabi saw tersebut. Untuk lebih mengetahui hakikat maulid, marilah kita ikuti uraian berikut: 1. Kebanyakan orang yang menyelenggarakan peringatan maulid, terjerumus pada perbuatan syirik. Yakni ketika mereka menyenandungkan yang artinya, "Wahai Rasulullah, berilah kami pertolongan dan bantuan. Wahai Rasulullah, engkaulah sandaran (kami). Wahai Rasulullah, hilangkanlah derita kami. Tidaklah derita (itu) melihatmu, melainkan ia akan melarikan diri." Seandainya Rasulullah saw mendengar senandung tersebut, tentu beliau akan menghukuminya syirik besar. Sebab pemberi

Keunikan Gambar Stereogram

Stereogram ditemukan oleh by Charles Wheatstone pada tahun 1838. Ia menemukan penjelasan mengenai penglihatan binokular yang menuntunnya untuk membuat streoskop kombinasi dari prisma dan cermin yang memungkinkan seseorang uneuk melihat gambar 3 dimensi dari gambar 2 dimensi. Secara sederhana stereogram bisa diartikan sebagai gambar 2 dimensi yang menyimpan obyek 3 dimensi di dalamnya. Jika dilihat sekilas atau dengan cara biasa, stereogram hanyalah gambar 2 dimensi. Namun kalau dilhat dengan cara khusus, maka kita bisa melihat gambar atau obyek 3 dimensi di dalam gambar tersebut. Kesan tiga dimensi pada stereogram dapat dibedakan menjadi tiga macam, yaitu kesan ketinggian (ortoskopik), datar, dan kedalaman (pseudoskopik). Kunci untuk melihat kesan tiga dimensi pada stereogram adalah mata kiri fokus melihat obyek sebelah kiri dan mata kanan fokus melihat obyek sebelah kanan. Jenis-jenis Stereogram : 1.    Single Image Stereogram (SIS) atau Autostereogram, adala

Cara Dzikir Yang Benar Setelah Shalat

Di dalam hadits-hadits shahih disebutkan tentang Nabi saw setelah shalat, beliau membaca istigfar sebanyak 3 kali dengan lafadz,   3X اَسْتَغْفِرُ اللهَ Astaghfirullah. (3x) "Aku memohon ampun kepada Allah" Kemudian beliau membaca,  اَللَّهُمَّ أَنْتَ السَّلاَمُ وَمِنْكَ السَّلاَمُ وَإِلَيْكَ يَعُوْدُ السَّلاَمُ تَبَرَكْتَ رَبَّنَا وَتَعَا لَيْتَ يَاذَالْجَلاَلِ وَالْأِ كْرَامِ Allahumma antas-salam wa minkas-salam wa ilaika ya’udus-salam tabarakta rabbana wa ta’alaita ya dzal-jalali wal-ikram.   "Ya Allah, Engkau adalah Zat yang mempunyai kesejahteraan dan dari-Mu kesejahteraan itu kepada-Mu akan kembali lagi segala kesejahteraan itu.  Engkaulah yang berkuasa memberi berkah yang banyak dan Engkaulah Yang Maha Tinggi, wahai Zat yang memiliki keagungan dan kemuliaan." Kemudian beliau membaca,   اللَّهُمَّ لاَ مَانِعَ لِمَا أَعْطَيْتَ، وَلاَ مُعْطِيَ لِمَا مَنَعْتَ، لاَ يَنْفَعُ ذَا الْجَدِّ مِنْكَ الْجَدُّ Allahuma la mani'a l