Notes |
|
|
есть такое, куда залить или отдельно приложить? только не азимут, а смещение x и y. |
|
|
|
Нет. Нужен именно азимут. |
|
|
|
>расстояние в метрах
о каких примерно величинах идёт речь? метры? сотни километров?
о плюсах?
в вики про локсодромию только на сфере написано (((
http://ru.wikipedia.org/wiki/%CB%EE%EA%F1%EE%E4%F0%EE%EC%E0 |
|
|
|
А я не про локсодромию, а про навигацию на большом круге. Соответственно расстояния могут быть любыми до половины длинны экватора. |
|
|
|
http://ru.wikipedia.org/wiki/Ортодромия
Только все эти формулы на сфере, а нужно на эллипсоиде. |
|
|
|
>я не про локсодромию
Вообще-то "координаты исходной точки, азимут и расстояние в метрах, а возвращает координаты новой точки" - именно движение по локсодромии. Или имелось ввиду что начальный азимут задаёт направление, а дальше по нему идём прямо и азимут меняется, вплоть за полюс? |
|
|
(0005670)
|
vdemidov
|
26-02-2012 21:07
(edited on: 26-02-2012 21:14) |
|
>начальный азимут задаёт направление, а дальше по нему идём прямо и азимут меняется, вплоть за полюс?
Именно.
Локсодромия интересна только при навигации по обычным бумажным картам.
|
|
|
|
Нужны алгоритмы аналогичные используемым вот в этом онлайн калькуляторе:
http://planetcalc.ru/722/ |
|
|
(0005672)
|
Tolik
|
27-02-2012 04:14
|
|
Наверно, и 0001116 можно сюда привязать? |
|
|
(0007118)
|
Dima2000
|
19-05-2012 07:48
(edited on: 19-05-2012 22:09) |
|
Вики про длину дуги даже эллипса говорит "Получившийся интеграл принадлежит семейству эллиптических интегралов, которые в элементарных функциях не выражаются, и сводится к эллиптическому интегралу второго рода E(t,e)." - т.е. или апроксимировать какой-то сферой (для малых расстояний почему бы нет? Или нужна офигительная точность?) или считать итерационно (разбивать отрезок на кусочки и каждый считать на своей приближенной сфере). Т.е. вопрос лишь в применении, какая точность необходима. Для всех связанных тикетов мне кажется достаточно будет и навигации по сфере, для которой есть точные формулы.
Проверил по тому "идеальному" калькулятору, Москва - Владивосток, расстояние 6445км/6456км, погрешность менее 0.2%, азимуты отличаются менее 0.05° (WGS84 vs сфера). Неужели для чего-то нужна ещё бОльшая точность?
|
|
|
|
Я ж не против. Реализуйте хоть на сфере. |
|
|
|
http://www.spywatcher.com.ua/forum/index.php?PHPSESSID=a35d32a4bfd512c148109fd622141327&topic=45.0 |
|
|
|
Нужно создать что-то похожее на то что появилось в API Яндекс-Карт
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/coordSystem.geo.xml |
|
|
(0008053)
|
zed
|
02-08-2012 19:49
|
|
http://habrahabr.ru/post/143898/
Со своей стороны мы написали две стандартных реализации — для обычной декартовой плоскости и для референсного эллипсоида WGS 84. Для второй реализации мы использовали формулы Винсенти (http://en.wikipedia.org/wiki/Vincenty%27s_formulae). Кстати, непосредственно реализовывал эту логику runawayed (http://habrahabr.ru/users/runawayed/), передаём ему привет :).
Постучись в гости к этому "runawayed", может он и для САСа такое сделает. Или хотя бы кинет исходники (если они не засекречены). |
|
|
|
Ну у меня на хабре аккаунта нету. Так что не смогу. Если кто постучится к runawayed буду благодарен. |
|
|
(0009104)
|
zed
|
02-10-2012 07:19
(edited on: 02-10-2012 07:23) |
|
vdemidov
>Нужны алгоритмы аналогичные используемым вот в этом онлайн калькуляторе:
Немного покопался в теме: все расчёты базируются на алгоритме некого поляка Vincenty и непродолжительное гугление по имени вывело на исходники, реализующие этот алгоритм: http://www.programmersheaven.com/download/48584/19/ZipView.aspx
Исходники на всякий случай приаттачил (geo84.pas). Необходимая нам реализация в процедуре: procedure GeoRadial(const Lat1, Lon1, Tc, D: Double; out Lat, Lon: Double);
Оно?
Только сейчас обратил внимание, что и на хабре оказывается про этого же поляка говорили, так что скорее всего оно.
|
|
|
|
Стопудово оно. Только нужно убрать жесткую привязку к константам и загнать в класс TDatum. Еще хорошо бы сравнить результаты функции Geodesic с тем что сейчас реализовано. |
|
|
(0009111)
|
zed
|
02-10-2012 12:20
|
|
Сейчас попробую заняться.
На сколько я понял, вот эта константа:
> f0 = 1/298.257223563; // Flattening
это тоже самое, что и FExct: Double; в TDatum? |
|
|
|
Тоже самое с точность может быть до обратного значения. Я точно не помню. Просто сравни значение для стандартного эллипсоида WGS84 |
|
|
(0009124)
|
zed
|
02-10-2012 15:50
|
|
|
|
(0009125)
|
zed
|
02-10-2012 15:59
|
|
На всякий случай, оставлю тут ссылку на калькулятор, которым я проверял правильность работы алгоритма: http://www.geomidpoint.com/destination/ |
|
|
(0009126)
|
zed
|
02-10-2012 18:26
|
|
>Еще хорошо бы сравнить результаты функции Geodesic с тем что сейчас реализовано.
Сравнил. САС-овский алгоритм оказался немножко менее точный, поэтому переделал и его до кучи. |
|