Anonymous | Login | Signup for a new account | 21-11-24 13:01 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0001188 | SAS.Планета | [All Projects] Хотелка | public | 26-02-2012 10:05 | 02-10-2012 18:26 | ||||
Reporter | vdemidov | ||||||||
Assigned To | zed | ||||||||
Priority | normal | Severity | minor | Reproducibility | N/A | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | 110418 | ||||||||
Target Version | 121010 | Fixed in Version | 121010 | ||||||
Summary | 0001188: Алгоритм проецирования точки на эллипсоиде | ||||||||
Description | Нужен алгоритм проецирования точки на эллипсоиде. То есть функция получает координаты исходной точки, азимут и расстояние в метрах, а возвращает координаты новой точки. | ||||||||
Additional Information | http://ru.wikipedia.org/wiki/Ортодромия | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | geo84.pas [^] (7,462 bytes) 02-10-2012 07:19 | ||||||||
Relationships | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Notes | |
(0005659) vasketsov (manager) 26-02-2012 12:52 |
есть такое, куда залить или отдельно приложить? только не азимут, а смещение x и y. |
(0005661) vdemidov (manager) 26-02-2012 13:23 |
Нет. Нужен именно азимут. |
(0005664) vasketsov (manager) 26-02-2012 13:52 |
>расстояние в метрах о каких примерно величинах идёт речь? метры? сотни километров? о плюсах? в вики про локсодромию только на сфере написано ((( http://ru.wikipedia.org/wiki/%CB%EE%EA%F1%EE%E4%F0%EE%EC%E0 |
(0005665) vdemidov (manager) 26-02-2012 14:20 |
А я не про локсодромию, а про навигацию на большом круге. Соответственно расстояния могут быть любыми до половины длинны экватора. |
(0005666) vdemidov (manager) 26-02-2012 14:28 |
http://ru.wikipedia.org/wiki/Ортодромия Только все эти формулы на сфере, а нужно на эллипсоиде. |
(0005667) vasketsov (manager) 26-02-2012 14:35 |
>я не про локсодромию Вообще-то "координаты исходной точки, азимут и расстояние в метрах, а возвращает координаты новой точки" - именно движение по локсодромии. Или имелось ввиду что начальный азимут задаёт направление, а дальше по нему идём прямо и азимут меняется, вплоть за полюс? |
(0005670) vdemidov (manager) 26-02-2012 21:07 edited on: 26-02-2012 21:14 |
>начальный азимут задаёт направление, а дальше по нему идём прямо и азимут меняется, вплоть за полюс? Именно. Локсодромия интересна только при навигации по обычным бумажным картам. |
(0005671) vdemidov (manager) 26-02-2012 21:34 |
Нужны алгоритмы аналогичные используемым вот в этом онлайн калькуляторе: http://planetcalc.ru/722/ |
(0005672) Tolik (manager) 27-02-2012 04:14 |
Наверно, и 0001116 можно сюда привязать? |
(0007118) Dima2000 (developer) 19-05-2012 07:48 edited on: 19-05-2012 22:09 |
Вики про длину дуги даже эллипса говорит "Получившийся интеграл принадлежит семейству эллиптических интегралов, которые в элементарных функциях не выражаются, и сводится к эллиптическому интегралу второго рода E(t,e)." - т.е. или апроксимировать какой-то сферой (для малых расстояний почему бы нет? Или нужна офигительная точность?) или считать итерационно (разбивать отрезок на кусочки и каждый считать на своей приближенной сфере). Т.е. вопрос лишь в применении, какая точность необходима. Для всех связанных тикетов мне кажется достаточно будет и навигации по сфере, для которой есть точные формулы. Проверил по тому "идеальному" калькулятору, Москва - Владивосток, расстояние 6445км/6456км, погрешность менее 0.2%, азимуты отличаются менее 0.05° (WGS84 vs сфера). Неужели для чего-то нужна ещё бОльшая точность? |
(0007141) vdemidov (manager) 21-05-2012 05:17 |
Я ж не против. Реализуйте хоть на сфере. |
(0007799) vdemidov (manager) 12-07-2012 05:29 |
http://www.spywatcher.com.ua/forum/index.php?PHPSESSID=a35d32a4bfd512c148109fd622141327&topic=45.0 |
(0008050) vdemidov (manager) 02-08-2012 16:52 |
Нужно создать что-то похожее на то что появилось в API Яндекс-Карт http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/coordSystem.geo.xml |
(0008053) zed (manager) 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", может он и для САСа такое сделает. Или хотя бы кинет исходники (если они не засекречены). |
(0008060) vdemidov (manager) 03-08-2012 06:34 |
Ну у меня на хабре аккаунта нету. Так что не смогу. Если кто постучится к runawayed буду благодарен. |
(0009104) zed (manager) 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); Оно? Только сейчас обратил внимание, что и на хабре оказывается про этого же поляка говорили, так что скорее всего оно. |
(0009105) vdemidov (manager) 02-10-2012 07:33 |
Стопудово оно. Только нужно убрать жесткую привязку к константам и загнать в класс TDatum. Еще хорошо бы сравнить результаты функции Geodesic с тем что сейчас реализовано. |
(0009111) zed (manager) 02-10-2012 12:20 |
Сейчас попробую заняться. На сколько я понял, вот эта константа: > f0 = 1/298.257223563; // Flattening это тоже самое, что и FExct: Double; в TDatum? |
(0009112) vdemidov (manager) 02-10-2012 12:25 |
Тоже самое с точность может быть до обратного значения. Я точно не помню. Просто сравни значение для стандартного эллипсоида WGS84 |
(0009124) zed (manager) 02-10-2012 15:50 |
Оказалось не тоже самое. |
(0009125) zed (manager) 02-10-2012 15:59 |
На всякий случай, оставлю тут ссылку на калькулятор, которым я проверял правильность работы алгоритма: http://www.geomidpoint.com/destination/ |
(0009126) zed (manager) 02-10-2012 18:26 |
>Еще хорошо бы сравнить результаты функции Geodesic с тем что сейчас реализовано. Сравнил. САС-овский алгоритм оказался немножко менее точный, поэтому переделал и его до кучи. |
Users who viewed this issue | |
User List | Anonymous (4899x), rass (4x), zOn (1x), elsergv (1x) |
Total Views | 4905 |
Last View | 21-11-2024 13:01 |
Issue History | |||
Date Modified | Username | Field | Change |
26-02-2012 10:05 | vdemidov | New Issue | |
26-02-2012 10:16 | vdemidov | Relationship added | child of 0000713 |
26-02-2012 12:52 | vasketsov | Note Added: 0005659 | |
26-02-2012 13:23 | vdemidov | Note Added: 0005661 | |
26-02-2012 13:52 | vasketsov | Note Added: 0005664 | |
26-02-2012 14:20 | vdemidov | Note Added: 0005665 | |
26-02-2012 14:28 | vdemidov | Note Added: 0005666 | |
26-02-2012 14:35 | vasketsov | Note Added: 0005667 | |
26-02-2012 21:07 | vdemidov | Note Added: 0005670 | |
26-02-2012 21:14 | vdemidov | Note Edited: 0005670 | View Revisions |
26-02-2012 21:26 | vdemidov | Additional Information Updated | View Revisions |
26-02-2012 21:34 | vdemidov | Note Added: 0005671 | |
27-02-2012 04:14 | Tolik | Note Added: 0005672 | |
27-02-2012 08:56 | vdemidov | Relationship added | child of 0001116 |
27-02-2012 09:03 | vdemidov | Relationship added | child of 0000663 |
27-02-2012 16:13 | vdemidov | Status | new => confirmed |
27-02-2012 16:13 | vdemidov | Target Version | => 24xxxx |
05-03-2012 06:15 | vdemidov | Relationship added | child of 0000094 |
05-03-2012 06:15 | vdemidov | Relationship added | child of 0000099 |
05-03-2012 08:22 | vdemidov | Relationship added | child of 0000219 |
05-03-2012 10:13 | vdemidov | Relationship added | child of 0000143 |
05-03-2012 10:57 | vdemidov | Relationship added | child of 0001051 |
19-05-2012 07:48 | Dima2000 | Note Added: 0007118 | |
19-05-2012 22:09 | Dima2000 | Note Edited: 0007118 | View Revisions |
21-05-2012 05:17 | vdemidov | Note Added: 0007141 | |
12-07-2012 05:29 | vdemidov | Note Added: 0007799 | |
02-08-2012 16:52 | vdemidov | Note Added: 0008050 | |
02-08-2012 19:49 | zed | Note Added: 0008053 | |
03-08-2012 06:34 | vdemidov | Note Added: 0008060 | |
02-10-2012 07:19 | zed | Note Added: 0009104 | |
02-10-2012 07:19 | zed | File Added: geo84.pas | |
02-10-2012 07:23 | zed | Note Edited: 0009104 | View Revisions |
02-10-2012 07:33 | vdemidov | Note Added: 0009105 | |
02-10-2012 12:20 | zed | Note Added: 0009111 | |
02-10-2012 12:25 | vdemidov | Note Added: 0009112 | |
02-10-2012 15:50 | zed | Note Added: 0009124 | |
02-10-2012 15:50 | zed | Status | confirmed => resolved |
02-10-2012 15:50 | zed | Fixed in Version | => 121010 |
02-10-2012 15:50 | zed | Resolution | open => fixed |
02-10-2012 15:50 | zed | Assigned To | => zed |
02-10-2012 15:50 | zed | Target Version | 24xxxx => 121010 |
02-10-2012 15:59 | zed | Note Added: 0009125 | |
02-10-2012 18:26 | zed | Note Added: 0009126 | |
08-10-2012 14:09 | vdemidov | Relationship added | child of 0001021 |
09-10-2012 06:49 | vdemidov | Relationship added | child of 0001616 |
13-08-2013 12:46 | vdemidov | Relationship added | related to 0002088 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |