Пример #1
0
    def __init__(self, depart, arrivee, heure_debut, date_format="%Y-%m-%d %H:%M:%S"):
        self.depart = depart
        self.arrivee = arrivee
        self.heure_debut = heure_debut

        # Préparation de l'URL pour l'API
        base = "https://maps.googleapis.com/maps/api/distancematrix/json?"
        origine = "origins=" + str(depart["lat"]) + "," + str(depart["lon"])
        destination = "&destinations="
        for lieu in arrivee:
            destination = destination + str(lieu["lat"]) + "," + str(lieu["lon"]) + "|"
        departure_time = "&departure_time=" + str(round(utile.convert_date(heure_debut, date_format)))
        fin_url = "&traffic_model=best_guess&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0"

        # Concaténation des éléments de l'URL
        url = base + origine + destination + departure_time + fin_url
        response = utile.requete_http(url)
        json_response = json.loads(response)
        trajet = []
        i = 0
        # Récupération des distances et des temps de parcours des trajets
        for element in json_response["rows"][0]["elements"]:
            temp = arrivee[i]
            temp["distance"] = round(element["distance"]["value"] / 1000, 2)
            temp["temps"] = round(element["duration_in_traffic"]["value"] / 60, 2)
            trajet.append(temp)
            i = i + 1
        self.trajet = trajet
Пример #2
0
    def __init__(self,
                 depart,
                 arrivee,
                 heure_debut,
                 date_format="%Y-%m-%d %H:%M:%S"):
        self.depart = depart
        self.arrivee = arrivee
        self.heure_debut = heure_debut

        # Préparation de l'URL pour l'API
        base = 'https://maps.googleapis.com/maps/api/distancematrix/json?'
        origine = 'origins=' + str(depart["lat"]) + "," + str(depart["lon"])
        destination = '&destinations='
        for lieu in arrivee:
            destination = destination + str(lieu["lat"]) + "," + str(
                lieu["lon"]) + "|"
        departure_time = '&departure_time=' + str(
            round(utile.convert_date(heure_debut, date_format)))
        fin_url = '&traffic_model=best_guess&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0'

        # Concaténation des éléments de l'URL
        url = base + origine + destination + departure_time + fin_url
        response = utile.requete_http(url)
        json_response = json.loads(response)
        trajet = []
        i = 0
        # Récupération des distances et des temps de parcours des trajets
        for element in json_response["rows"][0]["elements"]:
            temp = arrivee[i]
            temp["distance"] = round(element['distance']['value'] / 1000, 2)
            temp["temps"] = round(element['duration_in_traffic']['value'] / 60,
                                  2)
            trajet.append(temp)
            i = i + 1
        self.trajet = trajet
Пример #3
0
    def __init__(self,
                 depart,
                 arrivee,
                 heure_debut,
                 date_format="%Y-%m-%d %H:%M:%S"):
        self.depart = depart
        self.arrivee = arrivee
        self.heure_debut = heure_debut

        base = 'https://maps.googleapis.com/maps/api/directions/json?'
        origine = 'origin=' + str(depart["lat"]) + "," + str(depart["lon"])
        destination = '&destination=' + str(arrivee["lat"]) + "," + str(
            arrivee["lon"])
        departure_time = '&departure_time=' + str(
            round(utile.convert_date(heure_debut, date_format)))
        fin_url = '&traffic_model=best_guess&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0'
        '''Ajouter l'heure de depart à l'url'''
        url = base + origine + destination + departure_time + fin_url
        reponse = utile.requete_http(url)
        data_response = json.loads(reponse)

        self.distance = round(
            data_response['routes'][0]['legs'][0]['distance']['value'] / 1000,
            2)
        self.temps = round(
            data_response['routes'][0]['legs'][0]['duration_in_traffic']
            ['value'] / 60, 2)
Пример #4
0
def geocoder(adresse):
    '''
    Geocoder une adresse en (latitude, longitude) grâce à
    l'API de Nominatim.
    '''
    base = 'http://nominatim.openstreetmap.org/search?' \
           'format=json&polygon_geojson=1&q='
    texte = utile.nettoyer(adresse)
    mots_cles = '+'.join(texte.split())
    url = ''.join((base, mots_cles))
    reponse = utile.requete_http(url)
    try:
        adresse = json.loads(reponse)[0]
        latitude = float(adresse['lat'])
        longitude = float(adresse['lon'])
        return {
            'statut': 'succes',
            'lat': latitude,
            'lon': longitude
        }
    # L'adresse n'est pas valide
    except:
        return {
            'statut': 'echec'
        }
def distance(depart, arrivee):
    if len(depart)<3 or len(arrivee)<3:
        return None
    else:    
        base = 'https://maps.googleapis.com/maps/api/distancematrix/json?'
        origine = 'origins=' + formatage_url(depart)
        destination = '&destinations=' + formatage_url(arrivee)
        fin = '&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0'
        url = base + origine + destination + fin
        reponse = requete_http(url)
        return json.loads(reponse)       
Пример #6
0
 def calculer(self):
     # Concaténation des éléments de l'URL
     response = utile.requete_http(self.url)
     json_response = json.loads(response)
     trajet = []
     # Récupération des distances et des temps de parcours des trajets
     for i, element in enumerate(json_response["rows"][0]["elements"]):
         temp = self.arrivee[i]
         temp["distance"] = round(element['distance']['value'] / 1000, 2)
         temp["temps"] = round(element['duration_in_traffic']['value'] / 60,
                               2)
         trajet.append(temp)
     self.trajet = trajet
Пример #7
0
def parcours(depart, arrivee, heure_debut):
    '''Fonction permettant de formater l'url et de calculer les distances
    Attention à la key qu'il faudra changer'''
    base = 'https://maps.googleapis.com/maps/api/directions/json?'
    origine = 'origin=' + utile.formatage_url(depart)
    destination = '&destination=' + utile.formatage_url(arrivee)
    departure_time = '&departure_time=' + str(round(utile.convert_date(heure_debut)))
    fin_url = '&traffic_model=pessimistic&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0'
    
    '''Ajouter l'heure de depart à l'url'''
    url = base + origine + destination + departure_time + fin_url
    reponse = utile.requete_http(url)
    return json.loads(reponse)
Пример #8
0
 def calculer(self):
     """
     Calculer la durée et la distance d'un parcours
     à partir d'une URL.
     """
     # Construire l'URL de trajet
     self.construire()
     # Requêter l'URL
     reponse = utile.requete_http(self.url)
     informations = json.loads(reponse)
     # Extraction de la distance
     self.distance = informations["rows"][0]["elements"][0]["distance"]["value"]
     # Extraction de la durée
     self.duree = informations["rows"][0]["elements"][0]["duration_in_traffic"]["value"]
Пример #9
0
 def calculer(self):
     '''
     Calculer la durée et la distance d'un parcours
     à partir d'une URL.
     '''
     # Construire l'URL de trajet
     self.construire()
     # Requêter l'URL
     reponse = utile.requete_http(self.url)
     informations = json.loads(reponse)
     # Extraction de la distance
     self.distance = informations['rows'][0]['elements'][0]['distance'][
         'value']
     # Extraction de la durée
     self.duree = informations['rows'][0]['elements'][0][
         'duration_in_traffic']['value']
Пример #10
0
    def __init__(self,depart, arrivee, heure_debut, date_format = "%Y-%m-%d %H:%M:%S"):
        self.depart = depart
        self.arrivee = arrivee
        self.heure_debut = heure_debut
        
        base = 'https://maps.googleapis.com/maps/api/directions/json?'
        origine = 'origin=' + str(depart["lat"]) + "," + str(depart["lon"])
        destination = '&destination=' + str(arrivee["lat"]) + "," + str(arrivee["lon"])
        departure_time = '&departure_time=' + str(round(utile.convert_date(heure_debut,date_format)))
        fin_url = '&traffic_model=best_guess&mode=driving&language=fr-FR&key=AIzaSyCQnaoaMu6GVo3AwRzN62l0onao2TPN_u0'
    
        '''Ajouter l'heure de depart à l'url'''
        url = base + origine + destination + departure_time + fin_url
        reponse = utile.requete_http(url)
        data_response = json.loads(reponse)

        self.distance=  round(data_response['routes'][0]['legs'][0]['distance']['value'] / 1000,2)
        self.temps= round(data_response['routes'][0]['legs'][0]['duration_in_traffic']['value'] / 60,2)