Program PHP untuk Mencari Jarak Tempuh Antara Dua Alamat


Kesempatan kali ini kita akan belajar tentang cara membuat program mencari atau menghitung jarak tempuh dan waktu tempuh dari dua alamat dengan menggunakan PHP dan Google Maps API Web Services. Google Maps API Web Services ini terdiri dari banyak service yang bisa kita manfaatkan yaitu :

- Directions API
- Distance Matrix API
- Elevation API
- Geocoding API
- Time Zone API

Nah, Service yang akan kita gunakan adalah Google Distance Matrix API. Misalnya kamu mau menghitung atau mencari jarak tempuh dari Jalan Perak Timur Surabaya ke Jalan Wonokromo Surabaya, hasilnya 12,4 KM dengan waktu tempuh kurang 22 menit.



Bagaimana cara membuat program PHP-nya? Ayo kita ikuti langkah-langkah berikut ini:

1. Buat folder baru di htdocs dengan nama distance

2. kita buat halaman depan untuk inputnya, kita simpan dengan nama index.html
<html>
<head>
<title>Hitung Jarak - Google Distance Matrix API</title>
</head>

<body>
<form name="form" action="distance.php" method="post">
<p>
Alamat Asal :<br />
<input type="text" name="asal" required="required" size="40" />
</p>

<p>
Alamat Tujuan :<br />
<input type="text" name="tujuan" required="required" size="40" />
</p>

<input type="submit" name="submit" value="Cari Jarak" />
</form>
</body>
</html>

3. Lalu kita buat program intinya, kita simpan dengan nama distance.php
<?php

$asal   = !empty($_POST['asal']) ? urlencode($_POST['asal']) : null;

$tujuan = !empty($_POST['tujuan']) ? urlencode($_POST['tujuan']) : null;

$urlApi = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$asal."&destinations=".$tujuan."&language=id-ID";

$result = file_get_contents($urlApi);

$data   = json_decode($result, true);

?>

<p>
Alamat Asal : <br />
<strong><?php echo $data['origin_addresses'][0] ?></strong>
</p>

<p>
Alamat Tujuan : <br />
<strong><?php echo $data['destination_addresses'][0] ?></strong>
</p>

<p>
Jarak Tempuh : <br />
<strong><?php echo $data['rows'][0]['elements'][0]['distance']['text'] ?></strong>
</p>

<p>
Waktu Tempuh : <br />
<strong><?php echo $data['rows'][0]['elements'][0]['duration']['text'] ?></strong>
</p>

<button onclick="history.back()">Kembali</button>

4. Mari kita coba program ini, pastikan komputer kita terhubung dengan internet. masukkan alamat http://localhost/distance



Masih bingung? mari kita coba dengan demo program berikut ini :

Demo Program atau Download Source Code

Bagaimana sob, mudah bukan? seperti biasa saya tunggu kritik dan sarannya. Salam Blogger Madura

BAGIKAN KE:

29 komentar:

  1. Balasan
    1. referensi lengkapnya disini kang :
      https://developers.google.com/maps/documentation/distancematrix/

      Hapus
  2. jadi harus masukkan alamat yang sesuai dengan database google mas...??
    kalau nama desa / kelurahan aja bsa ngk mas..??

    BalasHapus
  3. mas kog muncul error seperti ini, bgmn solusinya :
    [function.file-get-contents]: failed to open stream: No error in C:\xampp\htdocs\distance\distance.php on line 9

    BalasHapus
    Balasan
    1. alamatnya urlnya kurang bener mungkin gan, coba di var_dump

      Hapus
  4. kalo nampilin sekalian sama gambar petanya bang, kira2 apa yang ditambah??

    BalasHapus
  5. ini yang saya cari2.. thx mas broo..

    BalasHapus
  6. mas di xampp php 5.2 kok tidak berfungsi ya ?

    BalasHapus
  7. bang itu jaraknya sesuai jalur yang ada di maps atau cuma garis lurus antara titik "a" ke titik "b"??

    BalasHapus
    Balasan
    1. pake jalur maps, kalo yg garis lurus beda lagi rumusnya mas bro...

      Hapus
  8. bang, mau tanya rumus/atau persamaan untuk pencarian lokasi rute : dari--> ke : jaral terdekat, apa?

    BalasHapus
  9. gan linknya enggak bisa ... tolong dong

    BalasHapus
  10. ko yang komplain syntax error ga di respon sih gan? ane juga sama ada peringatan gini : [function.file-get-contents]: failed to open stream: Invalid argument
    padahal udah ane ikutin langkah -langkah dan copas :D

    BalasHapus
    Balasan
    1. coba periksa lagi gan barangkali salah ngedit script :D

      Hapus
    2. Sama nech kaya ane...ga jalan di file_get_contents nya...mohon pencerahan...mungkin ada yang di setting di php.ini atau apalah???....

      Hapus
  11. kang andi..
    bisa gak kalo alamat tujuan nya diambil dari database? terus ada tampilan petanya? terima kasih

    BalasHapus
    Balasan
    1. kalau ambil data destinasinya dari database gimana ya?

      Hapus
    2. mas, maaf mau tanya, mas fierzal sudah bisa belum ya kalau untuk ngambil datanya dari database? karena saya sekarang sedang bingung juga kalau menggunakan google api distance dan ambil data dari database. terimakasih

      Hapus
  12. mas kenapa Source Codenya nggak bisa di download..??

    BalasHapus
  13. kalo destinasi lebih dari 1 gimana ya?

    BalasHapus
  14. mas ada tutorial tentang web buat aplikasi pertanyaan kyak tes masuk kerja tapi pake codeigniter ?
    terima kasih

    BalasHapus
  15. work gan cuma output nya kok cuma 1 rute doang yah? sedangkan ane coba langsung di maps output nya itu ada 3 rute. gmna yah biar kita dapet rute terpendeknya??

    BalasHapus
  16. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  17. maaf gan, program ini ada versi desktopnya ga pake delphi, klo ada boleh bagi gan. terimakasih banyak.

    BalasHapus
  18. Hey there, I think your website might be having browser compatibility issues. When I look at your blog site in Chrome, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, excellent blog! outlook login

    BalasHapus