Если на google map или openstreetmap поставить 2 точки с координатами 20;20 и 40;40 и соединить их прямой линией, то точка с координатами 30;30 не попадает на эту линию. Существует ли формула, позволяющая рассчитать координаты точки на произвольном отрезке соединяющем две точки, и отстоящей от первой точки, например на 40% длины отрезка?
Такая формула существует (скорее это не формула, а алгоритм). Она входит в "прямую геодезическую задачу" для геоида в системе координат WGS-84. Поискать ее можно в курсе "Сферической геодезии".
Согласен :) Но вдруг у кого-то возникнет такой же важный вопрос и вдруг этот наш новый гипотетический искатель истины воспользуется поиском по форуму.
Спасибо всем откликнувшимся. Попробовал разобраться по ссылке trit. Если честно, тяжеловато. Мне кажется, моя задача не совсем похожа на "прямую геодезическую задачу". Задача такая: Собачка бежит из пункта Q1 (lat1, lng1) в пункт Q2 (lat2, lng2). Известно, что она пробежала уже 30% пути. Найти текущие координаты (lat, lng) собачки. Там у них неизвестна конечная точка, но известно направление... Я не понимаю как из конечной точки перейти к направлению. Ну будем бороться...
О каком векторе идет речь , если задается только один набор декартовых координат? Где вторая точка? Центр Земли? И несколько смущает, что результат функции CartToSpher не используется никогда... там всегда 1 (или очень близко к тому)
Есть точка А "начало" и точка Б "конец" Сначала надо решить обратную геодезическую задачу для отрезка А-Б. Из этого решения мы получим направление ДУ (дирекционный угол А-Б) и расстояние Л (от А к Б). Второй этап: Решаем прямую геодезическую задачку Собачка выбегает из пункта А по направлению ДУ и пробегает "Л*30%" расстояния. Вопрос "в какой точке она окажется" ПС А вам надо сам алгоритм разработать или просто значение координат узнать для "ограниченного количества испытаний"?
Живут же люди!!! эхх.. где мои 17 Да, развеселая собачка.. так все же где она бегает? на плоскости, по эллипсоиду, или, Прости ей, Господи, на геоид занесло? зы офф, если что трите
Мы трём то, что превращает профессиональные темы в "базар". Если 1-2 коротеньких оффтопа, так это только разжижает тугую тему. Leanid, попробуйте разобраться сначала с геодезическими задачами на плоскости: https://www.google.com/search?q=Пря...=chrome..69i57j69i59&sourceid=chrome&ie=UTF-8
Обратную геодезическую задачу я решил получил азимут начального направления и расстояние (сферическое) Все термины из http://gis-lab.info/qa/sphere-geodesic-invert-problem.html Там же есть понятие вектора, который все время задается декартовыми координатами одной точки, вот я и спрашиваю, где вторая. ( Я думал, это что-то каноническое и только я не понимаю, что за вектор ) И длина этого вектора все время 1 , и никогда не используется в алгоритме решения, что и смутило. ЗЫ Пока алгоритм дает то же расстояние между двумя точками , что более простой "метод основанный на сферической тригонометрии" (цитата оттуда же) , которым я обычно находил расстояние. Интересно , что за "особые значения" вблизи которых будет ошибка ?
Рассчитал координаты и слегка разочарован. Отклонение от нарисованной прямой между А и Б еще больше, чем в случае если исходить из предположения что Земля плоская. Можно ли как-то узнать какую модель использует openstreetmap (google map) ? И соответственно подобрать формулу?
Похоже я неправильно сформулировал для себя задачу. Попробую еще раз. Собачка бежит из пункта Q1 (lat1, lng1) в пункт Q2 (lat2, lng2). Надо отобразить положение собачки, когда она пробежала 30% пути. Желательно чтобы крестик совпал с линией между Q1 и Q2. (Я понимаю что прямая линия это тоже не верно, но это меньшее из зол) Реально ли решить такую задачу?