| Anonymous | Login | Signup for a new account | 26-10-25 21:13 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 | ||||
| 0002276 | SAS.Планета | [All Projects] Хотелка / Feature request | public | 27-11-2013 13:06 | 28-11-2013 06:15 | ||||
| Reporter | zed | ||||||||
| Assigned To | zed | ||||||||
| Priority | normal | Severity | minor | Reproducibility | N/A | ||||
| Status | resolved | Resolution | fixed | ||||||
| Platform | OS | OS Version | |||||||
| Product Version | 131111 | ||||||||
| Target Version | 140303 | Fixed in Version | 140303 | ||||||
| Summary | 0002276: Добавить альтернативный алгоритм расчёта расстояний | ||||||||
| Description | Алгоритм Винсента (обратный), который сейчас используется в SAS, не всегда может рассчитать расстояние между двумя точками. И вот тому яркий пример: http://sasgis.org/forum/viewtopic.php?f=2&t=2211&start=10#p33545 Оказывается (внезапно), что есть ещё один популярный алгоритм, лишённый таких недостатков, да к тому же ещё и более быстрый (по заверениям). Этот алгоритм настолько втёрся в доверие, что его даже решили включить в состав proj4 в следующем релизе (4.9.xx). Алгоритм уже реализован на нескольких популярных языках (к сожалению, Delphi среди них нету), в том числе и на Си: http://geographiclib.sourceforge.net/html/C/ но на счастье, там довольно простое API и с использованием либы проблем быть не должно. | ||||||||
| Additional Information | Теоретическое обоснование алгоритма: Algorithms for geodesics by Karney (2012) | ||||||||
| Tags | No tags attached. | ||||||||
| Attached Files | |||||||||
Notes |
|
|
(0013339) vdemidov (manager) 27-11-2013 13:13 |
Может прост дождемся реализации в proj4 и просто заюзаем его, раз уж все равно пользуемся этой dll? |
|
(0013340) zed (manager) 27-11-2013 13:16 |
Да вот мне загорелось и хочется попробовать прямо сейчас :) Поэтому сделаю пока отдельной либой, а как обновится proj4, можно будет перейти и на него. Алгоритм Винсента выбрасывать по-любому не буду и он будет использоваться в случае если либа будет недоступна. |
|
(0013341) vdemidov (manager) 27-11-2013 14:08 |
Ну, тогда может стоит передавать в датум уже готовые алгортимы вычисления площади и расстояния, а не создавать в конструкторе. Тогда фабрика датумов сможет управлять этим всем хозяйством. |
|
(0013343) zed (manager) 27-11-2013 20:57 |
Пока что сделал в лоб. И столкнулся с проблемой в dll: там объявляется переменная double NaN (назначение аналогично дельфийской константе NAN, которая объявлена как NAN = 0.0/0.0), которой при инициализации присваивается значение NaN = sqrt(-1.0) и на этой вот строчке либа вылетает с ошибкой floating point operation. |
|
(0013346) zed (manager) 28-11-2013 06:14 edited on: 28-11-2013 06:14 |
Сделал так: > *(long long*)&NaN = 0x7ff8000000000000; там внутри либы этот NaN используется только для возвращения наружу неопределённого результата (при каких-либо ошибках), так что проблем не будет. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 27-11-2013 13:06 | zed | New Issue | |
| 27-11-2013 13:06 | zed | Status | new => assigned |
| 27-11-2013 13:06 | zed | Assigned To | => zed |
| 27-11-2013 13:07 | zed | Description Updated | View Revisions |
| 27-11-2013 13:13 | vdemidov | Note Added: 0013339 | |
| 27-11-2013 13:16 | zed | Note Added: 0013340 | |
| 27-11-2013 14:08 | vdemidov | Note Added: 0013341 | |
| 27-11-2013 20:57 | zed | Note Added: 0013343 | |
| 28-11-2013 06:11 | zed | File Added: geodesic.zip | |
| 28-11-2013 06:14 | zed | Note Added: 0013346 | |
| 28-11-2013 06:14 | zed | Note Edited: 0013346 | View Revisions |
| 28-11-2013 06:15 | zed | Status | assigned => resolved |
| 28-11-2013 06:15 | zed | Fixed in Version | => 140303 |
| 28-11-2013 06:15 | zed | Resolution | open => fixed |
| 08-08-2025 13:24 | zed | Category | Хотелка => Хотелка / Feature request |
| My View | View Issues | Change Log | Roadmap | Search |
| Copyright © 2007 - 2025 SAS.Planet Team |