import requests import json import time def alt(longitude, latitude): if len(longitude) != len(latitude): print ("Les tableaux de longitude et de latitude doivent avoir la même taille.") return "error" total_elements = len(longitude) batch_size = 200 start = 0 res=[] i=0 while start < total_elements: print(i,"/",total_elements/batch_size) i=i+1 end = min(start + batch_size, total_elements) longitude_batch = longitude[start:end] latitude_batch = latitude[start:end] res=res+req(longitude_batch, latitude_batch, len(longitude_batch)) # Mettez à jour l'indice de début pour le prochain lot start = end return res def req(latitude, longitude,nb): url = f'https://api.open-elevation.com/api/v1/lookup?locations=' for i in range(nb): url += str(latitude[i]) url += "," url += str(longitude[i]) url += "|" while(1): try: response = requests.get(url) if response.status_code == 200: try: data = json.loads(response.text) elevations = [result['elevation'] for result in data['results']] return elevations """if 'elevations' in data: elevation = data['elevations'] return elevation else: print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.") """ except: print("impossible de decode") # ~ print(url) # ~ print(latitude,",",longitude) time.sleep(1) else: print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}") except requests.exceptions.RequestException as e: print(f"Une erreur s'est produite lors de la requête : {e}")