SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002963SAS.Планета[All Projects] Багpublic12-02-2016 08:0616-06-2016 10:15
ReporterdmitryP 
Assigned Tovdemidov 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
Platformx64OSWindowsOS VersionWin7 SP1
Product Version151111 
Target Version160606Fixed in Version160606 
Summary0002963: ЕAccessViolation при склейке карты
DescriptionПри попытке склейки карты после запуска появляется сообщение об "EAccessViolation: Access violation at address 00405112 in module SAS.Planet. Read address 00000100".
Файл изображения создается, но формат - некорректный.

Steps To Reproduce1. Загрузить тайлы для области
2. Запустить склейку карты. Формат изображения и настройки склейки - произвольные.
3. После запуска склейки немедленно появляется сообщение (100%).
Additional InformationНе воспроизводится на v.150915.
Воспроизводится на v.151111 и Nightly build.
При попытке склейки Debug-версии приложение завершается. ELF-файл не образуется.
TagsNo tags attached.
Attached Filespng file icon ss1.png [^] (684,476 bytes) 12-02-2016 08:06
? file icon finland_.hlg [^] (252 bytes) 13-02-2016 17:19

- Relationships
related to 0002229resolvedvdemidov Артефакты при отображении тайлов 
related to 0001163resolvedvdemidov Искажения при наложении слоёв с разными проекциями 

-  Notes
(0017014)
dmitryP (reporter)
13-02-2016 17:19

Дополнительная информация.
Проблема проявляется только на определенной области выделения (добавил - finland_.hlg).
После небольшого изменения (чуть увеличил) - все собралось без проблем.
(0017015)
zed (manager)
14-02-2016 07:03

Да, под отладчиком срабатывет ассерт вот тут: \Src\RegionProcess\Combine\u_ImageLineProvider.pas, line 257


function TImageLineProviderAbstract.GetLocalLine(ALine: Integer): Pointer;
var
  VMapLine: Integer;
begin
  Assert(ALine >= 0);
  VMapLine := FMapRect.Top + ALine;
  Assert(VMapLine < FMapRect.Bottom);
  Assert(VMapLine >= FPreparedMapRect.Top); // <-- вот этот ассерт
  Assert(VMapLine < FPreparedMapRect.Bottom);
  Result := FPreparedData[VMapLine - FPreparedMapRect.Top];
end;
(0017047)
vdemidov (manager)
01-03-2016 15:53

Для надежности, нужно добавить такой же ассерт:

  Assert(VMapLine >= FPreparedMapRect.Top);
  Assert(VMapLine < FPreparedMapRect.Bottom);

в функцию GetLine после вычисления FPreparedMapRect.

Ошибка похоже в функции GetMapRectForLine. Но в чем дело я пока понять не могу. Нужно смотреть в отладчике. Вечером гляну.
(0017291)
vdemidov (manager)
02-06-2016 17:04

Это было тупо. В свое время когда работа с координатами была очень небрежна, для того что бы тайл после преобразования в географические координаты, а потом обратно, оставался тайлом, а не увеличивался на соседние была добавлена эта штука с округлением. Вот только я почему-то не учел, что 1 пиксел тайла это чуть меньше чем 0,005. Вот и получили глюки.

- Users who viewed this issue
User List Anonymous (3098x), zed (12x), vdemidov (23x), dmitryP (8x), ygorigor (1x), Garl (2x), Hugo-MIB (2x), bk99 (3x), gma (2x)
Total Views 3151
Last View 31-10-2024 23:50

- Issue History
Date Modified Username Field Change
12-02-2016 08:06 dmitryP New Issue
12-02-2016 08:06 dmitryP File Added: ss1.png
13-02-2016 17:19 dmitryP Note Added: 0017014
13-02-2016 17:19 dmitryP File Added: finland_.hlg
14-02-2016 07:03 zed Note Added: 0017015
14-02-2016 07:04 zed Status new => confirmed
28-02-2016 20:16 vdemidov Target Version => 160606
01-03-2016 15:53 vdemidov Note Added: 0017047
02-06-2016 16:43 vdemidov Assigned To => vdemidov
02-06-2016 16:43 vdemidov Status confirmed => assigned
02-06-2016 17:04 vdemidov Note Added: 0017291
02-06-2016 17:04 vdemidov Status assigned => resolved
02-06-2016 17:04 vdemidov Fixed in Version => 160606
02-06-2016 17:04 vdemidov Resolution open => fixed
16-06-2016 10:15 vdemidov Relationship added related to 0002229
16-06-2016 10:15 vdemidov Relationship added related to 0001163



Copyright © 2007 - 2024 SAS.Planet Team