Categories: JavascriptPHP

Menghitung jarak dua titik koordinat dengan php dan javascript

Bismillaahirrohmaanirrohiim…

Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk mengukur jarak antara dua titik koordinat dengan menggunakan program PHP dan juga Javascript.

Rumus haversine ini digunakan karena memperhitungkan kelengkungan bumi, sehingga metode trigonometri lah yang cocok digunakan.

Yang kita perlukan adalah dua titik koordinat yang masing-masing ada angka latitude dan longitude nya.

Berikut ini cara menghitung jarak diantara dua koordinat menggunakan PHP:

function getDistanceBetweenPoints($latitude1, $longitude1, $latitude2, $longitude2) {
  $theta = $longitude1 - $longitude2; 
  $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); 
  $distance = acos($distance); 
  $distance = rad2deg($distance); 
  $distance = $distance * 60 * 1.1515;//satuan miles
  $distance = $distance * 1.609344;//satuan km
  $distance = 1000 * $distance;//satuan meter
  
  return (round($distance,2)); //dalam meter
}

Cara dibawah ini menggunakan fungsi Javascript:

function getDistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2) {
    let theta = longitude1 - longitude2;
    //cari dalam satuan miles
    let distance = 60 * 1.1515 * (180/Math.PI) * Math.acos(Math.sin(latitude1 * (Math.PI/180)) * Math.sin(latitude2 * (Math.PI/180)) + Math.cos(latitude1 * (Math.PI/180)) * Math.cos(latitude2 * (Math.PI/180)) * Math.cos(theta * (Math.PI/180)));
    
    distance = distance * 1.609344;//km
    distance = 1000 * distance;//meter
    
    return Math.round(distance, 2); //dalam meter
}

Nah cukup mudah bukan, silahkan dicoba sesuai dengan kebutuhan kalian.

Bagikan
rasupe

Recent Posts

Subdomain pada cyberpanel tidak dapat diakses

Bismillaahirrohmaanirrohiim... Jika domain dan sub domainnya berada dalam satu vps cyberpanel, maka seringkali jadi tidak…

3 days ago

10 Aplikasi Kasir Terbaik di Indonesia (2025)

Bismillaahirrohmaanirrohiim... Dalam era digital saat ini, penggunaan aplikasi kasir (Point of Sale/POS) menjadi solusi penting…

4 days ago

Website di aapanel sering mati sendiri

Bismillaahirrohmaanirrohiim... Saat browsing-browsing saya seringkali melihat iklan aapanel, sekilas membuat penasaran sampai akhirnya saya mencoba…

5 days ago

Reset password cyberpanel via SSH

Bismillaahirrohmaanirrohiim... Berikut ini perintah untuk reset password admin cyberpanel melalui SSH command line. pastikan login…

6 days ago

Template Blogger Blogspot Gratis dan Bagus

Bismillaahirrohmaanirrohiim... Berikut ini beberapa template blogspot yang dapat anda gunakan secara gratis namun tampilannya bagus.…

2 months ago

MySQL error di xampp phpmyadmin dengan tabel “inuse”

Bismillaahirrohmaanirrohiim... Bagi yang menggunakan xampp, mungkin sudah familiar dengan database mysql dan web base phpmyadmin.…

2 months ago