Я новичок в работе с Картами и поисковыми алгоритмами. В настоящее время я использую пакет geopy
для получения расстояний от 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)
вывод
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'}
Так что для каждого места я могу рассчитать расстояние. Теперь мало вопросов
- Это расстояние авиакомпании? Также OSM предоставляет продолжительность поездки, как это делает Google?
- Как я могу проложить маршрут, если я хочу перейти из «Чикаго» в «Даллас», как Google? Есть ли способ получить маршрут напрямую из OSM, помимо использования API MapQuest и т. д.?
- Как мы можем реализовать слои трафика в нашей модели? Мне нужны хорошие ресурсы для этого, и если есть какие-либо реализации Python, это было бы здорово.