Dalam banyak kebutuhan bisnis berbasis lokasi, menghitung jarak bukan sekadar soal jarak lurus antar titik. Yang lebih penting adalah jarak dan waktu tempuh berdasarkan kondisi jalan sebenarnya. Contohnya adalah menentukan rute tercepat dari satu titik asal ke banyak tujuan, lalu menyaring tujuan yang masih berada dalam radius tertentu agar proses pengambilan keputusan menjadi lebih efisien.
Untuk menjawab kebutuhan ini, salah satu pendekatan yang umum digunakan adalah memanfaatkan routing engine berbasis OpenStreetMap, seperti Open Source Routing Machine atau OSRM.
Kenapa Routing Engine Dibutuhkan
Perhitungan jarak berbasis koordinat latitude dan longitude secara langsung hanya menghasilkan jarak geometris. Dalam praktiknya, kendaraan harus mengikuti jaringan jalan, memperhitungkan belokan, arah satu jalur, dan akses jalan. Routing engine menyelesaikan masalah ini dengan menghitung rute aktual di jalan, sekaligus menghasilkan estimasi jarak dan waktu tempuh yang lebih realistis.
OSRM menyediakan API yang ringan dan cepat untuk kebutuhan ini. Dengan input berupa koordinat titik awal dan titik tujuan, OSRM akan mengembalikan rute berkendara lengkap dengan jarak dalam meter.
Arsitektur Perhitungan Jarak
Secara umum, alur perhitungan jarak menggunakan OSRM dapat dibagi menjadi beberapa tahap:
- Pengguna menentukan titik awal dan titik tujuan melalui antarmuka aplikasi.
- Frontend mengirimkan koordinat tersebut ke backend.
- Backend bertugas memanggil OSRM API untuk menghitung rute dan jarak.
- Hasil perhitungan dikembalikan ke frontend untuk ditampilkan atau diproses lebih lanjut.
Contoh endpoint OSRM untuk menghitung rute berkendara antara dua titik adalah sebagai berikut:
Respons dari API ini mencakup informasi rute, jarak tempuh, dan estimasi durasi perjalanan.
Menghitung Banyak Tujuan Sekaligus
Untuk kasus satu titik asal dengan banyak tujuan, pendekatan sederhana adalah melakukan pemanggilan API secara berulang. Namun, untuk skala yang lebih besar, strategi seperti batch processing atau penggunaan API matrix menjadi lebih optimal. Dengan cara ini, sistem dapat menghitung jarak ke banyak tujuan dalam satu permintaan, sehingga performa tetap terjaga.
Setelah jarak diperoleh, backend dapat menerapkan logika tambahan seperti penyaringan tujuan berdasarkan radius tertentu, sebelum hasil akhir dikirimkan ke pengguna.
Kapan OSRM Menjadi Pilihan Tepat
OSRM cocok digunakan ketika dibutuhkan:
- Perhitungan rute berbasis jalan yang akurat
- Estimasi jarak dan waktu tempuh yang realistis
- Fleksibilitas untuk diintegrasikan ke berbagai arsitektur backend
Dengan memanfaatkan OSRM, tim teknologi dapat membangun solusi perhitungan jarak yang efisien, akurat, dan siap dikembangkan lebih lanjut untuk kebutuhan analitik maupun operasional.