Просмотр задачи

НомерПроектКатегорияВидимостьИзменен
0001624SAS.ПланетаБаг / Bugпубличная12-10-2012 09:11
ИнициаторAlexWhiter ОтветственныйAlexWhiter  
ПриоритетобычныйВлияниемалоеВоспроизводимостьвсегда
Состояние решенаРешениерешена 
Версия продукта121010 
Целевая версия131111Решена в версии131111 
Тема0001624: Снижается качество изображения при экспорте в JNX
ОписаниеПри экспорте в JNX тайлы из кэша подвергаются деформации, что особенно хорошо заметно на картах OSM.

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

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

Деятельность

Tolik

11-10-2012 04:31

руководитель   ~0009498

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

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


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

zed

11-10-2012 05:30

руководитель   ~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

разработчик   ~0009501

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

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

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

AlexWhiter

11-10-2012 05:38

разработчик   ~0009502

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

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

zed

11-10-2012 05:42

руководитель   ~0009503

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

AlexWhiter

11-10-2012 05:42

разработчик   ~0009504

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

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

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

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

zed

11-10-2012 05:50

руководитель   ~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

разработчик   ~0009506

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

Tolik

11-10-2012 06:10

руководитель   ~0009507

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

Garl

11-10-2012 07:10

руководитель   ~0009510

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

Tolik

11-10-2012 09:47

руководитель   ~0009511

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

AlexWhiter

11-10-2012 14:37

разработчик   ~0009512

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

Tolik

12-10-2012 06:55

руководитель   ~0009517

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

Garl

12-10-2012 09:11

руководитель   ~0009525

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

История изменений

Дата изменения Пользователь Поле Изменить
10-10-2012 23:26 AlexWhiter Новая задача
10-10-2012 23:26 AlexWhiter Метка добавлена: jnx
10-10-2012 23:26 AlexWhiter Метка добавлена: экспорт
10-10-2012 23:26 AlexWhiter Файл добавлен: TileFromCache.png
10-10-2012 23:27 AlexWhiter Файл добавлен: TileFromJNX.jpg
11-10-2012 04:24 Tolik Описание изменено
11-10-2012 04:31 Tolik Комментарий добавлен: 0009498
11-10-2012 04:32 Tolik Ответственный => Tolik
11-10-2012 04:32 Tolik Состояние новая => обратная связь
11-10-2012 05:30 zed Комментарий добавлен: 0009500
11-10-2012 05:30 AlexWhiter Комментарий добавлен: 0009501
11-10-2012 05:30 AlexWhiter Состояние обратная связь => назначена
11-10-2012 05:37 AlexWhiter Файл добавлен: Lanczos.jpg
11-10-2012 05:38 AlexWhiter Комментарий добавлен: 0009502
11-10-2012 05:42 zed Комментарий добавлен: 0009503
11-10-2012 05:42 AlexWhiter Комментарий добавлен: 0009504
11-10-2012 05:50 zed Комментарий добавлен: 0009505
11-10-2012 05:54 AlexWhiter Комментарий добавлен: 0009506
11-10-2012 05:57 Tolik Ответственный Tolik =>
11-10-2012 05:57 Tolik Состояние назначена => рассматривается
11-10-2012 06:10 Tolik Комментарий добавлен: 0009507
11-10-2012 07:10 Garl Комментарий добавлен: 0009510
11-10-2012 09:47 Tolik Комментарий добавлен: 0009511
11-10-2012 14:37 AlexWhiter Комментарий добавлен: 0009512
11-10-2012 16:50 zed Состояние рассматривается => решена
11-10-2012 16:50 zed Решена в версии => 131111
11-10-2012 16:50 zed Решение открыта => решена
11-10-2012 16:50 zed Ответственный => AlexWhiter
11-10-2012 16:51 zed Версия продукта .Nightly => 121010
11-10-2012 16:51 zed Целевая версия => 131111
12-10-2012 06:55 Tolik Комментарий добавлен: 0009517
12-10-2012 09:11 Garl Комментарий добавлен: 0009525
08-08-2025 13:22 zed Категория Баг => Баг / Bug