Задержался с выпуском новой версии программы с зачатками навигации. Прошу понять и простить: формулы для расчетов по этой самой навигации оказались весьма неочевидными и довольно "кучерявыми"... но пара недель работы по ночам в тишине помогли
Внешне в программе особо ничего не поменялось. Как бы... А перелопатить её мне пришлось основательно.
Вкратце:
Всего на экране 3 указателя.
Первый, как и был, просто компас (только теперь направление на Север берется не с протокола GPS, а вычисляется внутренними средствами приложения на основе последовательности координат... ладно, в общем, зачем те подробности - компас он и есть компас) :
Второй указатель - направление домой. "Домом" считается точка, где был подключен Блютуз и получены первые координаты с GPS после запуска программы. Если во время полета перейти на Гугл-карту, затем вернуться на главный экран и снова подключить Блютуз, то "Домом" будет считаться эта новая точка. Не думаю, что кто-то в полете такое будет делать... но мое дело предупредить.
Значок "Дома" на экране присутствует всегда при наличии связи с GPS - устройством. Красной стрелочкой он указывает направление на "Дом" (место, откуда взлетели). Внизу - расстояние до этого места и время, которое нужно, чтобы туда долететь с той скоростью, на которой в данный момент летим:
Главная стрелка направления указывает на центр того того или иного квадрата, куда мы собираемся долететь (собственно, в ту точку, куда на Гугл-карте ткнули пальцем при выборе квадрата).
Какой это именно квадрат - видно по желтому цвету и значкам >> << возле номера на квадрате:
В данном случае стрелочка будет показывать направление на квадрат №1 (а находимся мы на квадрате № 4, так как он ярко зеленый).
Выбрать, куда лететь, можно просто нажав на нужный квадратик пальцем, или предоставить сие дело самой программе - она "проведет" начиная с первого по счету квадрата и далее последовательно.
Это удобно при планировании перелетов - просто клацаем пальцем по карте точки курса и вносим их последовательно в ячейки 1, 2, 3... и так далее. Ну и летим по стрелочке к "первой" точке, как пролетим ее, программа даст курс на вторую, и так далее.
Да, ячейки можно "забивать" не подряд. а, допустим так: 3, 5, 6, 9, 10. Без разницы - программа пропуски проигнорирует. Сначала укажет на точку №3, после нее на №5 , ну и далее по списку.
Алгоритм автоматического переключения на следующую путевую точку такой: если мы оказались в радиусе 1000 метров от "целевой" точки и расстояние до нее начало увеличиваться вместо того, чтобы сокращаться, программа предполагает, что мы эту точку пролетели и даст направление на очередную точку.
Вот сам указатель с дистанцией до нужной нам точки и прогнозируемым временем подлета к ней:
Внизу --> номер квадрата, куда летим. Если летим домой, то вместо номера там будет слово "HOME".
Если стрелочка и эти циферки мешают при работе, клацаем на "самолетик", и это все исчезает с экрана. Клацаем по самолетику снова - появляется.
Ну и при работе на гоне эта стрелочка с цифрами исчезнет сама (чтобы не мешала), а затем вернется...
В общем, такое.
И по мелочам кое-что подправил в программе. Теперь при успешном подключении к GPS появляется на пару секунд соответствующее сообщение в центре экрана (просили - сделал). И еще что-то... уже не помню
Файлик лежит здесь:
https://drive.google.com/file/d/1vDuhLzNa-uYN-3XQQBMOPHHAjeMJWqlg/viewИ это только начало "большого пути". Пока что это "перелетная" навигация - чтобы от точки к точке летать, от "квадарата" к "квадрату" , и на аэродром.
Дальше буду эту навигацию впроваджувати (пардон, забыл как это слово по русски) в работу на гонах, чтобы "навигатор" научился выводить пилота с разворота точно в нужную точку захода на очередной гон. Особенно, если гон не рядом с предыдущим, а на загонках... чтобы кратность соблюдалась.
Ну и чтобы выводило не просто в "квадрат" при дообработке поля, а туда, откуда нужно продолжать обработку после дозаправки (или на следующий день).