[C#] Perhitungan Jarak antara dua titik koordinat

Gara-gara mencari jarak antara 2 koordinat(Latitude, Longitude) jadi tidak tidur 2 hari 2 malam. Ternyata perhitungannya sangat sederhana yaitu menggunakan rumus “Haversine” dimana persamaannya adalah :

Haversine formula: a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(√a, √(1−a))
d = R.c
dimana R sudah di tentuin yaitu = 6,371 untuk satuan kilometer

Tidak hanya itu saja, ternyata menuangkan rumus ini ke dalam C# cukup sulit, saya memang anti yang namanya Trigonometri tetapi dengan sanggat terpaksa saya harus mengubahnya ke dalam C# sehingga di peroleh seperti ini kira-kira :

public Double Haversine(Double lat1, Double lat2, Double long1, Double long2)
 {
 double dlat = toRad(lat2 - lat1);
 double dlon = toRad(long2 - long1);
 double a = Math.Sin(dlat/2)* Math.Sin(dlat/2) + Math.Sin(dlon / 2) * Math.Sin(dlon/2)*
 Math.Cos(toRad(lat1)) * Math.Cos(toRad(lat2));
 double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
 return 6371 * c;
 }

Bukan main senangnya saya setelah bisa melakukan perhitungannya, tapi kesenangan itu tidak cukup lama setelah saya mencoba mengotak-atik program saya, saya ketemu Method GetDistanceTo(), dan setelah saya coba itu sama saja dengan procedure yang saya temukan. Percuma saja saya melakukan perhitungan dengan Haversine kalo ada yang lebih praktis. Tapi tidak apa-apa lah itung-itung menambah pengetahuan.
menggunakan method GetDistanceTo pada C# :

Asal.Location.GetDistanceTo(Tujuan.Location);

Simpel kan? lebih mudah dari rumus Haversine..

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: