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 = 100 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): longi="" latti="" for i in range(nb): if i > 0: longi += "," latti += "," longi += str(longitude[i]) latti += str(latitude[i]) url = f'https://api.open-meteo.com/v1/elevation?latitude={latti}&longitude={longi}' rd=0 while(1): print(rd) rd=rd+1 try: response = requests.get(url) if response.status_code == 200: try: data = json.loads(response.text) if 'elevation' in data: elevation = data['elevation'] return elevation else: print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.") except: 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}")