На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Импорт TIFF и публикация RSW на веб-сервисе

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebService
Страницы: 1 2 3 След.
RSS
Импорт TIFF и публикация RSW на веб-сервисе
 
Уважаемые авторы!

Мне нужно дать пользователю моего веб-приложения возможность отображать в одном из слоёв растровые карты в различных форматах с возможностью включать и выключать отображение. Платформа - ОС AstraLinux SE 1.6, веб-сервис GIS WebServise SE 12.6.0, клиент GWTKSE 6.2.0.

Для решения названной задачи я решил в проект включать слой с пользовательской папкой на веб-сервисе, а карты копировать в неё в формате RSW. Исходные файлы передаются с клиента на сервер посредством запроса REST, принимаются плагином для appservice и копируются в нужную пользовательскую папку. Если исходные данные в формате, отличном от RSW, то они с помощью API в этот формат конвертируются. Для преобразования файлов использовал функцию picexLoadRasterToRswUn (первый параметр передаю NULL).

Оказалось, что этот подход работает, но не на всех входных файлах. Например, для карт в формате TIFF, сделанных в проекции EPSG:3395 выполнение названной функции завершается без ошибок, создаётся растровая карта RSW, и она нормально (т.е. без искажения цветов, пропорций и на своём месте) отображается. Если же растровая карта делается из TIFF, имеющего проекцию EPSG:3785, то функция picexLoadRasterToRswUn возвращает 0 (произошла ошибка), а код ошибки в третьем параметре - 60101 (насколько я понимаю - "IDS_PROJECTPARM      60101  // ОШИБОЧНЫЕ ДАННЫЕ О ПРОЕКЦИИ"). Контрольный вызов функции picexGetTypeSystemByEpsgCode для кода 3785 завершён успешно и вернул через второй параметр 0, что означает, согласно документации в исходниках, "0 - код EPSG отсутствует". Тем не менее, растровая карта RSW при этом создаётся, в логе нет сообщений об ошибках. Однако в веб-клиенте эта карта не отображается. Попытка опубликовать этот растр на веб-сервисе и включить его в проект также неудачна - слой публикуется, но в веб-конфигураторе проектов не виден.

Для контроля правильности своих действий попытался сконвертировать исходный TIFF в RSW с помощью программы Панорама-Мини, запускаемой на той же платформе (меню Файлы/Импорт из.../Растры(BMP,TIFF,JPEG...). В диалоге никаких дополнительных настроек не делал. Результат оказался точно таким же - получена та же самая растровая карта, не отображаемая на веб-клиенте. Кстати сказать, в Панораме-мини эта карта открывается, но странным способом - картинка отображается, но определить координаты, в которых она отображена, невозможно (недоступно через меню переключение видов координат). Это относится и к растру, сформированному программно.

НО! Если взять компьютер с Windows, запустить на нём Панораму-Мини для Windows и попытаться сконвертировать тот же самый TIFF, то в результате получается правильный растр RSW. Он отображается в веб-клиенте на своём месте и будучи размещённым в пользовательской папке на сервере, и будучи зарегистрированным как слой на веб-сервисе. И клиент, и серверное ПО, разумеется, запускаются при этом на AstraLinux.

А теперь вопрос. Что происходит, в чём ошибка, что делать, чтобы получить нужный результат?
Советы использовать Панораму-Мини под Windows для конвертации файлов или скачать с вашего сайта последние версии чего-нибудь, как частенько здесь советуют, не годятся категорически - на объекте нет никакого Windows и установлено сертифицированное ПО.
 
Добрый день. Возможно вы указываете некорректный код координат EPSG. Так как проекции 3785 в базе данных кодов EPSG и поставляемой с продуктом нет. Если вы имели ввиду проекцию GoogleMapsCompatible - меркатор на шаре, аналогичную 3395, но без полярного сжатия, то её код 3857. Поэтому и функция picexLoadRasterToRswUn возвращает вам код ошибки об ошибочной проекции для 3785. Попробуйте установить этот код 3857.
Изменено: Владимир Железняков - 26.10.2021 14:49:20
 
Такой код EPSG описан: https://epsg.io/3785 Да, он указан как deprecated, но тем не менее. Но это неважно. Этот код содержится в TIFF, полученном с помощью программы SASPlanet. Таких растров тьма тьмущая. Так что это не моя опечатка. Ну и ведь виндовая Панорама-Мини каким-то образом умудряется корректно обработать такие файлы. Вы разные базы данных кодов EPSG поставляете для разных платформ, что ли?
И опять же, Панорама-Мини под Linux что-то там конвертит, хоть и неправильно. В этом-то случае что происходит? Обращаю внимание, кстати, что результат этого конверчения тот же самый, что я получаю своим кодом.

Цитата
Владимир Железняков написал:
Попробуйте установить этот код 3857
Где мне его установить?
Цитата
Владимир Железняков написал:
Так как проекции 3785 в базе данных кодов EPSG и поставляемой с продуктом нет
Кстати говоря, где эта база находится, в каком файле? Возможно, проблему можно решить, самостоятельно добавляя в него данные по проекциям, которые вы не предусмотрели?
Изменено: Сергей Гамов - 26.10.2021 15:14:31
 
Официальный сайт базы данных epsg https://epsg.org/home.html
Описание проекций находятся в этих файлах
epsg.csg
epsg.csp
epsg.csu

Возможно в настольной версии есть заглушка для данного кода, чтобы интерпретировать его по другому.
 
Да бог с ним, с официальным сайтом. Дело не в том, что там написано, а в том, что есть вот такой TIFF, виндовая Панорама умеет его конвертировать правильно безо всяких к тому усилий со стороны пользователя. Линуксовая по неизвестной причине - нет, не умеет. Мне нужно сделать под Астрой SE то же самое, что делает виндовая Панорама, используя соответствующий API. Это возможно?
Цитата
Владимир Железняков написал:
Описание проекций находятся в этих файлах
Эти файлы записаны в каких-то известных открытых форматах или же это ваши собственные форматы? В последнем случае нельзя ли где почитать про их структуру? Может удастся просто добавить исходных данных для работы ваших алгоритмов и всё заработает.
 
epsg.csg
epsg.csp
epsg.csu
Эти файлы внутренней структуры и описания к ним нет. Они получены после конвертирования из БД Epsg.
Для того, чтобы расширить поддерживаемые коды проекций, есть файл crslist.xml. Это xml, к нему есть mapapi интерфейс. Но коды EPSG в нём должны начинаться с номера > 70000.
Изменено: Владимир Железняков - 26.10.2021 17:18:21
 
Ясно, добавить проекцию не получится. А что с виндовой Панорамой? Как она с задачей справляется?
 
Цитата
Владимир Железняков написал:
Попробуйте установить этот код 3857.
И всё-таки, где мне этот код попробовать установить?
 
Можно попробовать создать файл привязки и положить его рядом с тем же именем. Но в файле привязки выставить проекцию и параметры для 3857.
 
Цитата
Владимир Железняков написал:
Можно попробовать создать файл привязки и положить его рядом с тем же именем. Но в файле привязки выставить проекцию и параметры для 3857.
Вы имеете ввиду вот это (из комментария к функции picexLoadRasterToRswUn)?
Код
// Приоритет изъятия параметров привязки:
//   1. Содержимое соответствующих тегов файлов TIF, IMG
//   2. Файл привязки world.file
//   3. Файл привязки TAB (MapInfo)
// Функция ищет файл привязки рядом с исходным файлом srcname,
// перебирая по приоритету типы файлов.

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

А можно ли где узнать формат этого файла?
Страницы: 1 2 3 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности