View Issue Details

IDProjectCategoryView StatusLast Update
0001624SAS.ПланетаБаг / Bugpublic12-10-2012 09:11
ReporterAlexWhiter Assigned ToAlexWhiter  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version121010 
Target Version131111Fixed in Version131111 
Summary0001624: Снижается качество изображения при экспорте в JNX
DescriptionПри экспорте в JNX тайлы из кэша подвергаются деформации, что особенно хорошо заметно на картах OSM.

Во вложении находится тайл из контейнера JNX, и ближайший тайл из кэша SAS.
Очень хорошо видно, что при экспорте в JNX произошло сжатие изображения по вертикали, а также в изображение попали части соседних тайлов.

Хотелось бы, что тайлы брались из кэша без изменений, чтобы максимально улучшить качество результата.
Tagsjnx, экспорт
Attached Files
TileFromCache.png (26,190 bytes)   
TileFromCache.png (26,190 bytes)   
TileFromJNX.jpg (50,751 bytes)   
TileFromJNX.jpg (50,751 bytes)   
Lanczos.jpg (48,915 bytes)   
Lanczos.jpg (48,915 bytes)   

Activities

Tolik

11-10-2012 04:31

manager   ~0009498

> Хотелось бы, что тайлы брались из кэша без изменений
Подождите, но на навигаторе эти тайлы оказываются привязанными правильно?
Значит, если просто взять и положить туда исходные тайлы, получится неправильная картинка, надо их точно так же масштабировать, только с лучшим качеством.

Скорее всего, при ресайзе используется алгоритм, выбранный в настройках программы (в закладке вид), и по умолчанию выбран самый плохой - Nearest. Попробуйте поменять на Lanczos (лучший из тех, что я знаю) и сделать такой же экспорт, покажите, что получится.
Если поможет, поэкспериментируйте с другими алгоритмами.


Кстати, эту настройку по умолчанию надо изменить: Nearest никуда не годится.

zed

11-10-2012 05:30

manager   ~0009500

>при экспорте в JNX произошло сжатие изображения по вертикали
Произошла смена проекции с исходной на Lat/Lon. Смена проекции подразумевает физическое, если так можно сказать, деформирование изображения. Поэтому понятно, что смена проекции спутниковых снимков происходит более-менее безболезненно (хотя тут уже был где-то тикет про качество перепроецирования снимков из кэша GE, правда там работает обратный алгоритм - из Lat/Lon преобразуется в Меркатора), а вот для всех типов карт ситуация становится много хуже, что вы собственно и наблюдаете.

Помницца, когда мы прикручивали к САСу экспорт в JNX, вы ставили условие, что на вход должны приходить тайлы в проекции Lat/Lon. Я так и сделал.

Можете сами поэкспериментировать с проекциями, она меняется одной константой в TThreadExportToJnx.ProcessRegion в строке 162:
>VGeoConvert := FCoordConverterFactory.GetCoordConverterByCode(CGELonLatProjectionEPSG, CTileSplitQuadrate256x256);
где, вместо CGELonLatProjectionEPSG можете подставить любое значение из c_CoordConverter.pas - будет работать принудительное изменение исходной проекции тайлов в ту, которую укажете.

AlexWhiter

11-10-2012 05:30

developer   ~0009501

Если взять исходные тайлы (прямо из кэша) и указать их правильные координаты, то и в навигаторе такие тайлы будут правильно показаны.

Именно таким образом работает конвертер MOBAT2JNX. И сейчас для получения JNX-карты нормального качества приходится скачивать тайлы через SAS, а потом натравливать MOBAT2JNX на каталог с кэшем.

Проблема не в качестве сжатия, а в том, что сжатие вообще применяется. Хотя и без этого самого сжатия вполне можно обойтись.

AlexWhiter

11-10-2012 05:38

developer   ~0009502

Попробовал поменять тип сжатия на Lanczos. Получившийся тайл добавил прикрепил.

Стало, естественно, лучше.
Но хочется всё же докопаться до истины :)

zed

11-10-2012 05:42

manager   ~0009503

Измените свой класс, чтобы он принимал на вход тайл и географические координаты его углов, выбросите вообще всякое преобразование проекции и используйте FMapType.GeoConvert для получение этих самых координат и будет вам щасце.

AlexWhiter

11-10-2012 05:42

developer   ~0009504

> Помницца, когда мы прикручивали к САСу экспорт в JNX, вы ставили условие, что на вход должны приходить тайлы в проекции Lat/Lon. Я так и сделал.

Именно так, координаты тайлов должны быть в Lat/Lon.
Но есть 2 пути получить такие тайлы:
1. брать исходный тайл из кэша и пересчитывать его координаты в Lat/Lon;
2. трансформировать тайлы из кэша.

Если я правильно понимаю, сейчас используется как раз второй способ.
При использовании первого сами изображения не будут деформироваться, соответственно, качество картинки будет таким же, как в кэше.

Поправьте меня, пожалуйста, если я чего-то путаю или недопонимаю.

zed

11-10-2012 05:50

manager   ~0009505

http://sasgis.org/wikisasiya/doku.php/%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82_%D0%B2_%D1%81%D0%B0%D1%81.%D0%BF%D0%BB%D0%B0%D0%BD%D0%B5%D1%82%D0%B5

Lat/Lon это проекция, а система координат это WGS84 и в САСе, все координаты именно в этой системе координат. Т.е. никаких дополнительных преобразований делать не нужно.

AlexWhiter

11-10-2012 05:54

developer   ~0009506

Ясно. Попробую поменять класс экспорта.

Tolik

11-10-2012 06:10

manager   ~0009507

А дефолтный алгоритм всё-таки поменяйте, сразу уменьшится число вопросов.

Garl

11-10-2012 07:10

manager   ~0009510

по мне так BOX - самый красивый алгоритм

Tolik

11-10-2012 09:47

manager   ~0009511

Если бы кто-нибудь не поленился, попробовал все алгоритмы и выложил результаты... :)

AlexWhiter

11-10-2012 14:37

developer   ~0009512

Обошелся тайлами из кэша, так что resampler'ы не понадобились :)

Tolik

12-10-2012 06:55

manager   ~0009517

То есть теперь при экспорте в JNX ресайз вообще не используется?

Garl

12-10-2012 09:11

manager   ~0009525

ага, и результат в 100500 раз лучше с первого взгляда.

Issue History

Date Modified Username Field Change
10-10-2012 23:26 AlexWhiter New Issue
10-10-2012 23:26 AlexWhiter Tag Attached: jnx
10-10-2012 23:26 AlexWhiter Tag Attached: экспорт
10-10-2012 23:26 AlexWhiter File Added: TileFromCache.png
10-10-2012 23:27 AlexWhiter File Added: TileFromJNX.jpg
11-10-2012 04:24 Tolik Description Updated
11-10-2012 04:31 Tolik Note Added: 0009498
11-10-2012 04:32 Tolik Assigned To => Tolik
11-10-2012 04:32 Tolik Status new => feedback
11-10-2012 05:30 zed Note Added: 0009500
11-10-2012 05:30 AlexWhiter Note Added: 0009501
11-10-2012 05:30 AlexWhiter Status feedback => assigned
11-10-2012 05:37 AlexWhiter File Added: Lanczos.jpg
11-10-2012 05:38 AlexWhiter Note Added: 0009502
11-10-2012 05:42 zed Note Added: 0009503
11-10-2012 05:42 AlexWhiter Note Added: 0009504
11-10-2012 05:50 zed Note Added: 0009505
11-10-2012 05:54 AlexWhiter Note Added: 0009506
11-10-2012 05:57 Tolik Assigned To Tolik =>
11-10-2012 05:57 Tolik Status assigned => acknowledged
11-10-2012 06:10 Tolik Note Added: 0009507
11-10-2012 07:10 Garl Note Added: 0009510
11-10-2012 09:47 Tolik Note Added: 0009511
11-10-2012 14:37 AlexWhiter Note Added: 0009512
11-10-2012 16:50 zed Status acknowledged => resolved
11-10-2012 16:50 zed Fixed in Version => 131111
11-10-2012 16:50 zed Resolution open => fixed
11-10-2012 16:50 zed Assigned To => AlexWhiter
11-10-2012 16:51 zed Product Version .Nightly => 121010
11-10-2012 16:51 zed Target Version => 131111
12-10-2012 06:55 Tolik Note Added: 0009517
12-10-2012 09:11 Garl Note Added: 0009525
08-08-2025 13:22 zed Category Баг => Баг / Bug