Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @staticmethod
- def get_coordinates(source, destination):
- source_name = source.name
- destination_name = destination.name
- geocoding_url = f'https://api.openrouteservice.org/geocode/search?api_key={api_key}&text={source_name},{destination_name}'
- try:
- response = requests.get(geocoding_url)
- response.raise_for_status() # Проверка на ошибки HTTP
- data = response.json()
- source_coordinates = data['features'][0]['geometry']
- destination_coordinates = data['features'][1]['geometry']['coordinates']
- return source_coordinates, destination_coordinates
- except requests.exceptions.RequestException as e:
- return None
- @staticmethod
- def calculate_distance(source_coordinates, destination_coordinates):
- matrix_url = f'https://api.openrouteservice.org/v2/matrix/driving-car'
- try:
- payload = {'locations': [source_coordinates, destination_coordinates]}
- headers = {'Authorization': api_key, 'Content-Type': 'application/json'}
- response = requests.post(matrix_url, json=payload, headers=headers)
- if response.status_code == 200:
- data = response.json()
- distances = data.get('distances')
- else:
- return None
- except requests.exceptions.RequestException as e:
- return None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement