July 27, 2017

Menghitung Jarak Satu Titik Koordinat dengan Titik Koordinat Lain (Antar Koordinat) dengan Python

Beberapa waktu lalu mendapat sebuah kasus untuk menghitung jarak satu titik koordinat (latitude dan longitude) dengan titik koordinat lain. Setelah searching ke beberapa referensi akhirnya mendapat satu persamaan yang bisa digunakan untuk menghitung jarak 2 titik koordinat. Nama persamaan ini disebut Haversine Formula.

Haversine Formula adalah persamaan yang penting dalam bidang navigasi untuk mencari jarak antara dua lokasi. Persamaan ini bekerja dengan menarik sebuah garis dari satu titik ke titik kedua. Pada artikel ini, implementasi dari persamaan haversine ini akan dibuat dengan Python. Untuk satuan jarak yang digunakan adalah Kilometer.

Kode
from math import radians, cos, sin, asin, sqrt

def haversine(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance between two points 
    on the earth (specified in decimal degrees)
    """
    # convert decimal degrees to radians 
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])

    # haversine formula 
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    c = 2 * asin(sqrt(a)) 
    r = 6371 # Radius of earth in kilometers. Use 3956 for miles
    return c * r

center_point = [{'lat': -7.7940023, 'lng': 110.3656535}]
test_point = [{'lat': -7.79457, 'lng': 110.36563}]

lat1 = center_point[0]['lat']
lon1 = center_point[0]['lng']
lat2 = test_point[0]['lat']
lon2 = test_point[0]['lng']

a = haversine(lon1, lat1, lon2, lat2)

print('Distance (km) : ', a)

area = 1.00 # in kilometer
if a <= area:
    print('Inside the area')
else:
    print('Outside the area')

Variabel lat1 dan lon2 merupakan titik koordinat lokasi pertama, sedangkan lat2 dan lon2 merupakan titik koordinat lokasi kedua. Koordinat-koordinat ini kemudia dikirim pada fungsi def haversine yang merupakan fungsi penghitung jarak dengan persamaan haversine.

Sebagai tambahan saya membuat kondisi senderhana, yang menenapkan titik1 berada didalam luas area tertentu dari titik2 atau tidak. Variabel area menginisialisasi jarak radius yang diinginkan, misal dalam contoh adalah 1.00 (1 KM), jika jarak antar kedua titik kurang dari 1 KM maka bernilai true, jika tidak berinai false, atau diluar jangkauan area/radius.

Hasil

Selamat mencoba.

Artikel Terkait

Menghitung Jarak Satu Titik Koordinat dengan Titik Koordinat Lain (Antar Koordinat) dengan Python
4/ 5
Oleh

Berlangganan

Suka dengan artikel di atas? Silakan berlangganan gratis via email

Tambahkan Komentar Anda