Exemple #1
0
    def add_track(self, path):
        tl = TrackLibrary()
        tl.add_track(path)
        if self.max_latitude:
            if tl[path].min_latitude > self.max_latitude or \
                    tl[path].max_latitude < self.min_latitude or \
                    tl[path].min_longitude > self.max_longitude or \
                    tl[path].max_longitude < self.min_longitude:
                #print("Outside our specified area")
                return
        min_date = self.config.get_min_date()
        max_date = self.config.get_max_date()
        if min_date or max_date:
            if min_date and tl[path].max_date < min_date:
                #print("Before the specified time range")
                return
            if max_date and tl[path].min_date > max_date:
                #print("After the specified time range")
                return

        # At this point we know the track is one that we want
        self.tracks.append(path)

        # If we only have one track, we use its bounds as our
        # auto-detected bounds
        if len(self.tracks) == 1:
            self.auto_min_latitude = tl[path].min_latitude
            self.auto_max_latitude = tl[path].max_latitude
            self.auto_min_longitude = tl[path].min_longitude
            self.auto_max_longitude = tl[path].max_longitude
            self.auto_min_elevation = tl[path].min_elevation
            self.auto_max_elevation = tl[path].max_elevation
            self.auto_min_speed = tl[path].min_speed
            self.auto_max_speed = tl[path].max_speed
            return

        # If we don't have a minimum latitude specified, grow our
        # auto-detected bounds accordingly
        if not self.min_latitude:
            if self.auto_min_latitude > tl[path].min_latitude:
                self.auto_min_latitude = tl[path].min_latitude
            if self.auto_max_latitude < tl[path].max_latitude:
                self.auto_max_latitude = tl[path].max_latitude
            if self.auto_min_longitude > tl[path].min_longitude:
                self.auto_min_longitude = tl[path].min_longitude
            if self.auto_max_longitude < tl[path].max_longitude:
                self.auto_max_longitude = tl[path].max_longitude

        # Likewise, grow the auto-elevation bounds
        if not self.min_elevation:
            if self.auto_min_elevation > tl[path].min_elevation:
                self.auto_min_elevation = tl[path].min_elevation
            if self.auto_max_elevation < tl[path].max_elevation:
                self.auto_max_elevation = tl[path].max_elevation

        # Likewise, grow the auto-speed bounds
        if self.min_speed is None:
            if self.auto_min_speed > tl[path].min_speed:
                self.auto_min_speed = tl[path].min_speed
            if self.auto_max_speed < tl[path].max_speed:
                self.auto_max_speed = tl[path].max_speed