Мини-навигатор
Здравствуйте!
Хочу сделать мини-навигатор, который отображал бы пользователю текстовую информацию в виде расстояния и угла поворота в градусах к заданной цели. Есть, допустим координаты цели - 55.861462, 37.625886 Пользователь находится по координатам - 55.722194, 37.749482 Достаточно ли этих данных, чтобы для координат пользователя отображать на сколько градусов ему нужно повернуться, чтобы его маршрут был наиболее коротким к заданной цели? |
|
Цитата:
Как минимум нужны координаты двух точек пользователя, чтобы определить сторону его движения. |
НNexus,
На сколько повернуть - определить невозможно, зато можно понять, куда идти (если есть компас - настоящий или в навигаторе) |
Цитата:
Да, вы правы, скорее всего нужны предыдущие координаты пользователя. Расстояние я знаю как вычислять, но вот угол поворота к заданной цели увы пока не понимаю. Для этих целей есть какая-то формула? |
Цитата:
|
GreenCoder,
Зачем вам градусы, на сколько повернуть? Как вы их будете определять их при повороте? Главное - правильное направление: сориентировать смартфон и двигаться в нужную сторону, отслеживая отклонения. |
Dilettante_Pro,
Градусы буду сам я определять глазами, и допустим каждые 10 метров пройденного пути корректировать своё движение на основе новых координат смартфона, по сути это и есть ориентация смартфона в нужном направлении, только голосом. Чтобы можно было положить смартфон в карман, подключить наушники и просто слушать, куда надо поворачивать, налево или направо и на сколько градусов. В лесу мне так было бы удобней выбираться из всяких зарослей, чем смотреть на экран смартфона. |
Dilettante_Pro,
Такое приложение есть для андройда, называется я иду домой, но оно какое-то не стабильное, иногда координаты сбиваются, иногда после обновления приложения и вовсе вылетает при запуске, да и половина функционала в нем мне не нужно. Поэтому хочу сделать свой аналог, просто сохранение координат и возможность вести смартфон к ним. |
GreenCoder,
Цитата:
|
Dilettante_Pro,
Ну навигатор сказал, поверните налево на 90 градусов, что тут уметь?) Поворачиваетесь на четверть круга влево и идёте дальше, если сбились с курса, навигатор каждые 10 секунд будет подсказывать на сколько градусов и в какую сторону нужно скорректировать своё движение. |
GreenCoder,
Примерный алгоритм расчета угла. 1. определили координаты стартового местонахождения. 2. Определили координаты цели. 3. Вычислили расстояние до цели. 4. Пошли. (Первоначальный угол корректировки неизвестен, далее будет известен). 5. Определили через какое-то время текущие координаты. 6. Вычислили пройденный путь (по прямой от начальной точки). 7. Через пропорцию вычислили координаты точки на правильном пути на таком же расстоянии от начала. 8. определили расстояние между этой точкой и точкой вашего местонахождения - дельта. 9. дельта / (путь*2) = sin(Alfa), где Alfa - половина угла отклонения 10. Отклонение влево или вправо - по анализу разности координат с учетом координат начальной и конечной точки и т.д - снова с пункта 4 . |
Dilettante_Pro,
Благодарю! Попробую ваш алгоритм реализовать. |
Часовой пояс GMT +3, время: 16:08. |