Tutorial SQL - Menghitung Jarak Longitude dan Latitude

Post a Comment

Pada artikel kali ini, saya akan secara singkat saja menjelaskan bagaimana cara menghitung jarak antara 2 lokasi. Yang diperlukan dalam perhitungan jarak ini adalah koordinat longitude dan latitude dari masing-masing lokasi. Dan juga cara yang akan saya jelaskan ini adalah cara dengan menggunakan query pada MySQL. Nantinya pada artikel selanjutnya mungkin akan saya jelaskan juga bagaimana caranya dengan menggunakan bahasa PHP atau Javascript.

Di sini saya akan menggunakan google map untuk mendapatkan koordinat lokasi longitude dan latitude yang diperlukan. Contoh yang saya gunakan adalah menghitung jarak antara 2 lokasi sebagai berikut :

  • Lokasi pertama adalah Gereja Katolik Santa Maria Tak Bercela dengan koordinat latitude -7.2888878 dan longitude 112.7581761.
  • Lokasi kedua adalah Indomaret Ngagel Madya  dengan latitude -7.2921667 dan longitude 112.7598175.
Cara untuk menghitung jarak antara 2 lokasi tersebut dengan menggunakan query adalah dengan rumus sebagai berikut :


SELECT (6371 * acos( 
                cos( radians(lat2) ) 
              * cos( radians( lat1 ) ) 
              * cos( radians( lng1 ) - radians(lng2) ) 
              + sin( radians(lat2) ) 
              * sin( radians( lat1 ) )
                ) ) as distance 

Di mana lat1 adalah latitude lokasi pertama, lat2 adalah latitude lokasi kedua, lng1 adalah longitude lokasi pertama dan lng2 adalah longitude lokasi kedua.

Dengan menggunakan rumus dan query di atas maka query yang perlu dijalankan adalah sebagai berikut :

SELECT (6371 * acos( 
                cos( radians(-7.2921667) ) 
              * cos( radians( -7.2888878 ) ) 
              * cos( radians( 112.7581761 ) - radians(112.7598175) ) 
              + sin( radians(-7.2921667) ) 
              * sin( radians( -7.2888878 ) )
                ) ) as distance 

Dan hasil yang muncul adalah 0.4070705246091621. Satuan yang dihasilkan adalah dalam satuan kilometer (km).

Perhitungan jarak ini akan mengambil jarak lurus antara 1 lokasi dengan lokasi yang lain, bukan jarak mengikuti jalan raya yang ada pada google maps. Kegunaan dari perhitungan jarak ini yang saya alami adalah untuk menghitung radius dari lokasi 1 dengan lokasi yang lain. Jadi apakah 1 lokasi yang muncul sebagai lokasi check in masih dalam radius 100 meter yang saya tentukan dengan lokasi check in yang sesungguhnya.

Demikianlah penjelasan singkat saya pada artikel Tutorial SQL - Menghitung Jarak Longitude dan Latitude ini. Silahkan gunakan kolom komentar jika ada pertanyaan seputar artikel yang telah saya jelaskan di atas ini. Terima kasih

Related Posts

Post a Comment