У меня есть фрейм данных с маршрутом автобуса, то есть каждая запись является координатой. Эта база данных упорядочена в направлении, которое должен иметь маршрут, например: введите здесь описание изображения
df содержит идентификатор и координаты (UTM и широта, долгота).
Также у меня есть фрейм данных с остановками автобуса. Фрейм данных аналогичен, он содержит id и координаты остановок. Эти данные не упорядочены по маршруту, по которому следует автобус. Построив маршрут с его остановками, я могу увидеть маршрут, который у него есть, но при выполнении расчетов с базами данных они не логичны, так как некоторые маршруты являются циклическими. в зависимости от маршрута, по которому они следуют, то есть сравнить каждую запись на маршруте с местонахождением и отсортировать их. Я пытался сделать это разными способами, например, попытаться сравнить расстояние между этими точками:
def pseleccionados(paraderos):
for i, sample in paraderos.iterrows():
epsilon = 0.01
df_epsilon = ruta[(ruta["X-Coordinate"] - sample[1] <= epsilon) & (ruta["Y-Coordinate"] -
sample[2] <= epsilon)]
if(df_epsilon.empty):
paraderos.drop(i, inplace=True)
continue
return paraderos
Я работаю с координатами UTM только для удобства, но это также может быть с широтой и долготой. Наконец, самым быстрым решением, хотя и неправильным, было отсортировать базу данных остановок в возрастающем или убывающем порядке, глядя на маршрут, по которому должен следовать автобус, но мне это не удалось. Надеюсь, ты сможешь мне помочь.