OSM mendapatkan durasi dan arah dari rute A ke B dengan Python

Saya baru dalam bekerja dengan Maps dan algoritma pencarian. Saat ini saya menggunakan paket geopy untuk mendapatkan jarak dari Nominatim

from geopy.geocoders import Nominatim
from geopy.distance import vincenty

nom = Nominatim()
chicago = nom.geocode("chicago")
dallas = nom.geocode("dallas")
chicago_gps = (chicago.latitude, chicago.longitude)
dallas_gps = (dallas.latitude, dallas.longitude)
distance = vincenty(chicago_gps, dallas_gps).km
print('Distance in kms: {}'.format(distance))
print(chicago.raw)

keluaran

Distance in kms: 1294.7623005649557
{'lat': '41.8755546', 'osm_id': '122604', 'boundingbox': ['41.643919', '42.0230219', '-87.940101', '-87.5239841'], 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright', 'lon': '-87.6244212', 'place_id': '178038280', 'class': 'place', 'icon': 'https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png', 'osm_type': 'relation', 'importance': 0.29566190262222, 'display_name': 'Chicago, Cook County, Illinois, United States of America', 'type': 'city'}

Jadi untuk setiap tempat saya bisa menghitung jaraknya. Sekarang ada beberapa pertanyaan

  1. Apakah itu jarak penerbangan? Apakah OSM juga memberikan durasi perjalanan seperti yang dilakukan Google?
  2. Bagaimana saya bisa mendapatkan petunjuk arah jika saya ingin pergi dari "Chicago" ke "Dallas" seperti google? Apakah ada cara agar kita mendapatkan perutean langsung dari OSM selain menggunakan API MapQuest dll?
  3. Bagaimana kita bisa menerapkan lapisan lalu lintas dalam model kita? Saya memerlukan sumber daya yang bagus untuk itu dan jika ada implementasi python, itu akan sangat bagus.

person muazfaiz    schedule 18.01.2018    source sumber


Jawaban (1)


Apakah itu jarak penerbangan?

Ya, lihat dokumentasi geopy tentang penghitungan jarak. geopy tidak mendukung perutean sebenarnya saat ini.

Apakah OSM juga memberikan durasi perjalanan seperti yang dilakukan Google?

Ya, jika Anda menggunakan router asli. Lihat router online berbasis OSM. Beberapa di antaranya, seperti GraphHopper dan OSRM, memberikan petunjuk belokan demi belokan.

Bagaimana saya bisa mendapatkan petunjuk arah jika saya ingin pergi dari "Chicago" ke "Dallas" seperti google? Apakah ada cara agar kita mendapatkan perutean langsung dari OSM selain menggunakan API MapQuest dll?

Lihat jawaban saya sebelumnya. Gunakan API salah satu dari banyak router online. Alternatifnya, jalankan instans perutean Anda sendiri. Banyak dari router ini bersifat open source dan dapat diinstal secara lokal.

Bagaimana kita bisa menerapkan lapisan lalu lintas dalam model kita? Saya memerlukan sumber daya yang bagus untuk itu dan jika ada implementasi python, itu akan sangat bagus.

Tidak dapat membantu Anda dengan hal itu. Saya akan mulai dengan melihat http://opentraffic.io/ dan https://github.com/graphhopper/open-traffic-collection.

person scai    schedule 19.01.2018
comment
Terima kasih atau jawaban langkah demi langkah. - person muazfaiz; 21.01.2018
comment
Jadi dengan membuat instance yang Anda maksud adalah mengunduh semua data dari OSM ke server saya sendiri, mengatur server dan melanjutkan dari sana? - person muazfaiz; 22.01.2018
comment
Ya. Baik untuk seluruh planet atau untuk wilayah/negara tertentu yang Anda minati. - person scai; 22.01.2018