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

Cara mengakses gps di HP dengan javascript

Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…

2 months ago

Kemasan cleo botol kecil sering bikin tangan terluka

Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…

2 months ago

Solusi InsCek pada meteran PLN

Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…

2 months ago

Cara mengakses gmail dengan php imap

Bismillaahirrohmaanirrohiim... Saat ini teknologi sudah berkembang cepat, ada kalanya kita ingin diberikan informasi secara cepat…

8 months ago

Error posible dead lock pada cyberpanel litespeed mysql

Bismillaahirrohmaanirrohiim... Jika web diakses oleh banyak orang, khususnya yang berbasis wordpress, maka secara normal proses…

9 months ago

Aplikasi Sistem Monitoring Sekolah berbasis WEB

Bismillaahirrohmaanirrohiim... Saat ini, sekolah baik SD, SMP, ataupun SMA tentunya ingin dapat melihat dan memonitor…

9 months ago