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
Nemu API di mana Kang? Keren...
BalasHapusreferensi lengkapnya disini kang :
Hapushttps://developers.google.com/maps/documentation/distancematrix/
jadi harus masukkan alamat yang sesuai dengan database google mas...??
BalasHapuskalau nama desa / kelurahan aja bsa ngk mas..??
dicoba dulu mas, gratis kok :D
Hapusmas kog muncul error seperti ini, bgmn solusinya :
BalasHapus[function.file-get-contents]: failed to open stream: No error in C:\xampp\htdocs\distance\distance.php on line 9
alamatnya urlnya kurang bener mungkin gan, coba di var_dump
Hapuskalo nampilin sekalian sama gambar petanya bang, kira2 apa yang ditambah??
BalasHapusini yang saya cari2.. thx mas broo..
BalasHapusmas di xampp php 5.2 kok tidak berfungsi ya ?
BalasHapusmasak gan? di xampp 5.6 jalan kok gan
Hapusbang itu jaraknya sesuai jalur yang ada di maps atau cuma garis lurus antara titik "a" ke titik "b"??
BalasHapuspake jalur maps, kalo yg garis lurus beda lagi rumusnya mas bro...
Hapusbang, mau tanya rumus/atau persamaan untuk pencarian lokasi rute : dari--> ke : jaral terdekat, apa?
BalasHapusgan linknya enggak bisa ... tolong dong
BalasHapusbisa kok gan, tinggal download aja..
Hapusko 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
BalasHapuspadahal udah ane ikutin langkah -langkah dan copas :D
coba periksa lagi gan barangkali salah ngedit script :D
HapusSama nech kaya ane...ga jalan di file_get_contents nya...mohon pencerahan...mungkin ada yang di setting di php.ini atau apalah???....
Hapuskang andi..
BalasHapusbisa gak kalo alamat tujuan nya diambil dari database? terus ada tampilan petanya? terima kasih
kalau ambil data destinasinya dari database gimana ya?
Hapusmas, 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
Hapusmas kenapa Source Codenya nggak bisa di download..??
BalasHapuskalo destinasi lebih dari 1 gimana ya?
BalasHapusmas ada tutorial tentang web buat aplikasi pertanyaan kyak tes masuk kerja tapi pake codeigniter ?
BalasHapusterima kasih
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??
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusmaaf gan, program ini ada versi desktopnya ga pake delphi, klo ada boleh bagi gan. terimakasih banyak.
BalasHapusthanks
BalasHapusHey 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