View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002275SAS.Планета[All Projects] Багpublic26-11-2013 15:5526-11-2013 20:32
Reporterzed 
Assigned Tovdemidov 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version131111 
Target Version140303Fixed in Version140303 
Summary0002275: Ошибка в рассчёте расстояний и площадей
DescriptionПричём, ошибка не в алгоритмах, а где-то выше (может где появилось лишнее округление координат точек?). Ошибка воспроизводится на полигонах из *.sml, т.е. туда всё пишется верно.
Steps To ReproduceБерём ночнушку или релиз 13111, импортируем полигон из аттача и смотрим в информацию:

Количество частей: 1
Количество точек: 2962
Периметр: 2978,29 км
Площадь: 204826,71 км2

Билдим SAS по состоянию на пол-года назад (к примеру, rev.7350), запускаем с тем же файлом меток (sml), который создал релиз и смотрим на информацию ещё раз:

Количество частей: 1
Количество точек: 2962
Периметр: 2991,25 км
Площадь: 206207,16 км2
Additional InformationЗначения периметра/площади старой версии можно считать референсными, поскольку они сравнивались с GlobalMapper и QGIS.

Собственно, начав копаться в сорцах QGIS на предмет расчёта расстояний/площадей и обнаружилось что хоть в qgis алгоритм расчёта расстояний и идентичен нашему, SAS вдруг стал нагло врать и ничего не сходится, даже с его же прошлыми показаниями...

НО если раньше SAS выдавал ошибку на полигоне 1-4.kml из этого сообщения на форуме, сегодняшняя версия отрабатывает без ошибок алгоритма (о точности результата пока не возьмусь говорить).
TagsNo tags attached.
Attached Files? file icon EuropeMinsk.kml [^] (66,213 bytes) 26-11-2013 15:55
png file icon Image 2.png [^] (2,485 bytes) 26-11-2013 17:09

- Relationships

-  Notes
(0013323)
vdemidov (manager)
26-11-2013 16:18

Попробуй переключиться с гугловской карты на яндексовскую или наоборот перед вычислением площади и периметра.
(0013324)
zed (manager)
26-11-2013 16:21

Не помогает.

Нашёл проблемный коммит: 7440 (0489aad5146b) Хэш в датум и конвертре координат - вот после него и стало всё плохо.
(0013325)
vdemidov (manager)
26-11-2013 16:39

Странно. Там добавляется только вычисление хэша. никакая логика не меняется. Разве что где-то очепятался. Глянь свежим взглядом.
(0013326)
zed (manager)
26-11-2013 17:10

Пока не нашёл где, но явная ошибка в передаче параметров в конструктор TDatum (скриншот).
(0013327)
zed (manager)
26-11-2013 17:16

Нашёл. В нескольких местах есть такие строчки:

> u_GlobalState.FGPSDatum := TDatum.Create(3395, 6378137, 6356752);
> u_MarkDbGUIHelper.TDatum.Create(3395, 6378137, 6356752)

Это как минимум. И как оно вообще работает с такими-то багами???
(0013328)
vdemidov (manager)
26-11-2013 17:17

Ух ты. А как оно вообще скомпилилось?????
(0013329)
zed (manager)
26-11-2013 17:21

Скомпилилось-то без проблем: THashValue = UInt64; и есть перегруженный конструктор, который принимает 3 параметра.
(0013330)
zed (manager)
26-11-2013 17:46

А заодно, кстати, и выявился баг не баг, а недоработка - информация для меток выводится не в датуме карты, а в жёстко зашитом в коде датуме. И на текущий момент это эллипсоид. Нужно добавить переключатель какой-нить что-ли: какой именно использовать датум, для расчётов - тот что у карты или эллипсоид. И по-умолчанию таки стоит оставить эллипсоид.

P.S. И кстати, почему для создания _датума_ используется код _проекции_? Тоже баг?

- Users who viewed this issue
User List Anonymous (1452x), disaspb (1x)
Total Views 1453
Last View 02-04-2020 15:30

- Issue History
Date Modified Username Field Change
26-11-2013 15:55 zed New Issue
26-11-2013 15:55 zed File Added: EuropeMinsk.kml
26-11-2013 15:56 zed Additional Information Updated View Revisions
26-11-2013 16:18 vdemidov Note Added: 0013323
26-11-2013 16:21 zed Note Added: 0013324
26-11-2013 16:39 vdemidov Note Added: 0013325
26-11-2013 17:09 zed File Added: Image 2.png
26-11-2013 17:10 zed Note Added: 0013326
26-11-2013 17:16 zed Note Added: 0013327
26-11-2013 17:17 vdemidov Note Added: 0013328
26-11-2013 17:21 zed Note Added: 0013329
26-11-2013 17:46 zed Note Added: 0013330
26-11-2013 19:33 vdemidov Assigned To => vdemidov
26-11-2013 19:33 vdemidov Status new => assigned
26-11-2013 20:31 vdemidov Status assigned => resolved
26-11-2013 20:31 vdemidov Fixed in Version => 140303
26-11-2013 20:31 vdemidov Resolution open => fixed
26-11-2013 20:32 vdemidov Target Version => 140303



Copyright © 2007 - 2020 SAS.Planet Team