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

Amarah Sang Istri Reda Karena Istigfar

Seseorang menceritakan kisahnya, "Disuatu hari saya pulang ke rumah dalam keadaan letih dan penuh beban. Aku membuka pintu ketika tiba-tiba istri menunggu penuh tanda marah dan emosi. Dia langsung menjejaliku dengan berbagai pertanyaan. Saya tidak bisa menguasai diri, lalu menghadapinya dengan emosi dan amarah yang sama. Malam sudah larut, sementara debat dan marah terus berlanjut sampai menjelang Subuh. Akhirnya, istriku mengambil inisiatif meninggalkan rumah dan pergi ke rumah orang tuanya. Saya berusaha mengurungkan tekadnya tapi tidak berhasil, dia masuk kamar kami mempersiapkan tasnya untuk bergegas pergi. Saya meninggalkannya dan keluar dari rumah tanpa tahu kemana harus pergi, saya sangat emosional dan marah. Di samping rumahku terdapat sebuah masjid dan adzan sebentar lagi dikumandangkan. Saya masuk masjid, berwudhu, dan shalat dua rakaat. Tak lama kemudian adzan Subuh dikumandangkan, saya pun shalat Subuh berjamaah. Saya diam di masjid, beristigfar kepada Allah ...

Cara Membuat List / Daftar Item pada HTML

List item digunakan untuk mengelompokkan data baik berurutan (ordered list) maupun yang tidak berurutan (unordered list). Ordered List Untuk membuat list terurut nomor (ordered list), kita gunakan tag pembuka <ol> dan penutup </ol>, sedangkan untuk mendata setiap itemnya menggunakan tag <li> sebagai pembuka dan </li> sebagai penutup. Contoh: Daftar Hari:<br> <ol> <li>Senin</li> <li>Selasa</li> <li>Rabu</li> <li>Kamis</li> <li>Jumat</li> <li>Sabtu</li> <li>Minggu</li> </ol> Output: Unordered List Untuk membuat list tidak terurut nomor (Unordered list), kita gunakan tag pembuka <ul> dan penutup </ul>, sedangkan untuk mendara setiap itemnya menggunakan tag <li> sebagai pembuka dan </li> sebagai penutup. Contoh: Daftar Hari:<br> <ul> <li>Senin</li> <li>Selasa</li> ...

Definisi Algoritma dan Contohnya dalam Kehidupan Sehari - Hari

Definisi Algoritma   Algoritma adalah urutan langkah - langkah logis untuk penyelesaian masalah yang disusun secara sistematis. Kata logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Contoh Algoritma dalam kehidupan sehari - hari                  1.        Algoritma menulis surat : a.     Mempersiapkan kertas dan amplop b.     Mempersiapkan alat tulis, seperti pena atau pensil c.      Mulai menulis d.     Memasukkan kertas ke dalam amplop e.     Pergi ke kantor pos untuk mengeposkan surat tersebut   ...