Как сделать приложение для транспортировки GPS?

Я живу в Сплите, Хорватия, и городская автобусная компания недавно обвинила новое программное обеспечение, и вот что оно делает: если я пассажир и жду автобус на автобусной станции, есть огромный монитор, на котором я можно увидеть код автобуса и время, которое понадобится ему, чтобы добраться до моей станции. Проблема в том, что за два года использования программного обеспечения я ни разу не видел, чтобы время прибытия было даже точным. Я знаю, что данные GPS могут быть неточными, но это.... И это меня так расстраивает, что я решил, что попытаюсь написать аналогичное приложение для моего итогового экзамена в CS в колледже. Проблема в том, что я много раз искал в Интернете последние несколько дней и не могу найти хорошие отправные точки. Итак, мой вопрос: вы когда-нибудь участвовали в таком проекте, и если да, то могли бы вы дать мне несколько советов, будь то учебники или книги по теме? Я ценю любой вклад. Если я сделал ошибку в отношении самого вопроса, не стесняйтесь закрыть его. Спасибо!

1 ответ

Решение

Вы, вероятно, будете иметь:

  • Объект транспортного средства, содержащий местоположение каждого транспортного средства, назначенный маршрут, направление движения по маршруту и ​​следующую запланированную остановку, предыдущую запланированную остановку, время прибытия на предыдущую запланированную остановку
  • Массив маршрутов, который содержит список остановок и структуру данных, содержащую историческое время прохождения между остановками на каждом маршруте

Теперь обновления для местоположения транспортного средства выдвигаются к объекту транспортного средства.

Если вы хотите обновить отображение на станции, найдите все маршруты, проходящие через эту станцию, и для каждого маршрута отобразите приблизительное время прибытия следующего транспортного средства на этом маршруте.

В основе этого лежит расчетная структура времени прибытия. Определите это, предполагая некоторое расстояние между остановками и средней скоростью движения.

Теперь, каждый раз, когда транспортное средство прибывает на остановку, вычисляет реальное время, которое потребовалось, чтобы добраться туда с его последней остановки, и используйте это для обновления среднего времени прохождения, связанного с получасовыми приращениями (или что у вас есть), вы также можете по сезону и / или дню недели. Целью биннинга является неявный учет различной загруженности трафика временем суток, днем ​​недели и / или сезоном. Предполагая, что в остальном однородные условия, вы в конечном итоге получите приличную оценку времени прохождения между каждой станцией.

Вы можете найти полезным использовать фильтр Калмана.

Оценки времени в пути между более удаленными станциями могут быть более точными, чем время в пути между соседними станциями, если вы хотите посмотреть на это. Марковские цепочки высших порядков также могут помочь в описании статистики транзитных времен.

Просто идеи.

Другие вопросы по тегам