Beispiel #1
0
class DistanceMatrix(object):
    parser = DistanceMatrixParser()
    manager = Manager()

    def __init__(self, api_key):
        self.api = DistanceMatrixApi(api_key)

    def to_python(self, json_data):
        """Method should converts json_data to python object."""
        self.manager.clear()  # always clear manager data.

        self.parser.json_data = json_data

        origins = self.parser.get_origin()
        destinations = self.parser.get_destination()

        rows = self.parser.get_rows()

        origin_counter = 0

        for origin in origins:
            destination_counter = 0

            for element in rows[origin_counter].get('elements'):
                self.parser.json_data = element

                model = DistanceMatrixModel()
                model.origin = origin
                model.destination = destinations[destination_counter]
                model.distance = self.parser.get_distance()
                model.duration = self.parser.get_duration()

                self.manager.data.add(model)

                destination_counter += 1

            origin_counter += 1

    def distance(self, origins, destinations, mode, avoid=None):
        """Method returns distance between origins and destination."""
        json_data = self.api.query(origins, destinations, mode, avoid)

        if json_data:
            self.to_python(json_data)

        return self.manager
Beispiel #2
0
class DistanceMatrix():
    parser = DistanceMatrixParser()
    manager = Manager()

    def __init__(self, api_key):
        self.api = DistanceMatrixApi(api_key)

    def to_python(self, json_data):
        """Method should converts json_data to python object."""
        self.manager.clear()  # always clear manager data.

        self.parser.json_data = json_data

        origins = self.parser.get_origin()
        destinations = self.parser.get_destination()

        rows = self.parser.get_rows()

        origin_counter = 0

        for origin in origins:
            destination_counter = 0

            for element in rows[origin_counter].get('elements'):
                self.parser.json_data = element

                model = DistanceMatrixModel()
                model.origin = origin
                model.destination = destinations[destination_counter]
                model.distance = self.parser.get_distance()
                model.duration = self.parser.get_duration()

                self.manager.data.add(model)

                destination_counter += 1

            origin_counter += 1

    def distance(self, origins, destinations, mode, avoid=None):
        """Method returns distance between origins and destination."""
        json_data = self.api.query(origins, destinations, mode, avoid)

        if json_data:
            self.to_python(json_data)

        return self.manager
Beispiel #3
0
 def __init__(self, api_key):
     self.api = DistanceMatrixApi(api_key)
Beispiel #4
0
 def __init__(self, api_key):
     self.api = DistanceMatrixApi(api_key)