Bayangkan Anda memiliki daftar titik (lintang + bujur) yang sebelumnya Anda rekam dengan penerima GPS. Sekarang, Anda perlu mengubahnya menjadi representasi tekstual dari rute yang Anda ikuti. Contoh:
- Mulai dari Redmond Avenue 12
- Jalan kaki 200 m
- Belok kiri ke St. Lainnya
- Berjalan 100 m
- Berhenti di Another St. 10
- Akhir
Tidak perlu terlalu detail. Ide pertama yang muncul di benak saya adalah menggunakan layanan eksternal (google, yahoo ...) untuk membalikkan geocode setiap titik. Kemudian terapkan algoritma sederhana untuk menulis rute ketika saya mendeteksi perubahan dalam nama jalan.
Setiap tip tentang apa algoritma terbaik untuk digunakan atau implementasi (terbuka) yang ada dipersilahkan. Tampaknya tidak sepele.
Start at Redmond Avenue 12
danWalk 200 m
saya tidak akan tahu ke mana harus berjalan? Maaf sudah melakukan nitpicking.Jawaban:
Jika Anda dapat menggunakan layanan eksternal, Google Directions API menyediakan fungsi ini secara langsung. Ini mendukung titik arah di sepanjang jalan, sehingga Anda bisa melakukan:
Ini akan mengembalikan
JSON
dokumen dengansteps
untuk setiap arah.Jika Anda ingin melakukan ini sendiri, Anda memiliki beberapa langkah untuk mulai memproses arahan: Anda akan memerlukan dataset untuk merutekan jalur, seperti OSM , dan mesin perutean seperti pgRouting . Sesuatu seperti OSM2PostGIS menyediakan angkat berat yang diperlukan untuk mendapatkan pengaturan seperti ini berjalan. Anda kemudian ingin memposisikan ulang masing-masing poin Anda ke tepi terdekat, yang dapat dilakukan di PostGIS dengan
ST_Line_Locate_Point
( dokumentasi ). Antara referensi linear di PostGIS dan pgRouting, Anda harus bisa membuat arahan yang cukup masuk akal.sumber