def track_max_length(self,track_coords):
		max_length = 0
		for i in range(1,len(track_coords)):
			length = lib.coords_2_km(track_coords[i-1],track_coords[i])
			if length > max_length:
				max_length = length
		return max_length
 def track_max_length(self, track_coords):
     max_length = 0
     for i in range(1, len(track_coords)):
         length = lib.coords_2_km(track_coords[i - 1], track_coords[i])
         if length > max_length:
             max_length = length
     return max_length
	def track_total_length(self,track_coords):
		total_length = 0
		for i in range(1,len(track_coords)):
			length = lib.coords_2_km(track_coords[i-1],track_coords[i])	
			total_length = total_length + length
		return total_length
		second_line =  input_f.readline()
		if second_line == '':
			continue
		third_line = input_f.readline()
		if third_line == '':
			continue

		first_line_attrs = lib.parse_line(first_line)
		second_line_attrs = lib.parse_line(second_line)
		third_line_attrs = lib.parse_line(third_line)

 		first_line_coord = [first_line_attrs['lon'], first_line_attrs['lat']]
		second_line_coord = [second_line_attrs['lon'],second_line_attrs['lat']]
		third_line_coord = [third_line_attrs['lon'],third_line_attrs['lat']]

		d_first_second = lib.coords_2_km(first_line_coord,second_line_coord)
		d_second_third = lib.coords_2_km(second_line_coord,third_line_coord)
		d_first_third = lib.coords_2_km(first_line_coord,third_line_coord)
		while True:
			#log_f.write(str(d_first_second) + ' ' + str(d_second_third) + ' ' + str(d_first_third) + ' ' + first_line)
			distance_separate = 0.5
			if (first_line_attrs['taxi_status'] == third_line_attrs['taxi_status']) & (first_line_attrs['taxi_status'] != second_line_attrs['taxi_status']) & (d_first_second > distance_separate) & (d_second_third > distance_separate):
			#distance_separate = 1
			#if (d_first_second > distance_separate) & (d_second_third > distance_separate) & (d_first_third < distance_separate):
			#if (d_first_third < d_first_second) & (d_first_third < d_second_third):
				output_f.write(first_line)
			
				first_line = third_line
				first_line_attrs = third_line_attrs
				first_line_coord = third_line_coord
 def track_total_length(self, track_coords):
     total_length = 0
     for i in range(1, len(track_coords)):
         length = lib.coords_2_km(track_coords[i - 1], track_coords[i])
         total_length = total_length + length
     return total_length
            continue
        third_line = input_f.readline()
        if third_line == '':
            continue

        first_line_attrs = lib.parse_line(first_line)
        second_line_attrs = lib.parse_line(second_line)
        third_line_attrs = lib.parse_line(third_line)

        first_line_coord = [first_line_attrs['lon'], first_line_attrs['lat']]
        second_line_coord = [
            second_line_attrs['lon'], second_line_attrs['lat']
        ]
        third_line_coord = [third_line_attrs['lon'], third_line_attrs['lat']]

        d_first_second = lib.coords_2_km(first_line_coord, second_line_coord)
        d_second_third = lib.coords_2_km(second_line_coord, third_line_coord)
        d_first_third = lib.coords_2_km(first_line_coord, third_line_coord)
        while True:
            #log_f.write(str(d_first_second) + ' ' + str(d_second_third) + ' ' + str(d_first_third) + ' ' + first_line)
            distance_separate = 0.5
            if (first_line_attrs['taxi_status']
                    == third_line_attrs['taxi_status']) & (
                        first_line_attrs['taxi_status'] !=
                        second_line_attrs['taxi_status']) & (
                            d_first_second > distance_separate) & (
                                d_second_third > distance_separate):
                #distance_separate = 1
                #if (d_first_second > distance_separate) & (d_second_third > distance_separate) & (d_first_third < distance_separate):
                #if (d_first_third < d_first_second) & (d_first_third < d_second_third):
                output_f.write(first_line)