Уважаемые авторы!
Мне нужно дать пользователю моего веб-приложения возможность отображать в одном из слоёв растровые карты в различных форматах с возможностью включать и выключать отображение. Платформа - ОС 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 и установлено сертифицированное ПО.
Мне нужно дать пользователю моего веб-приложения возможность отображать в одном из слоёв растровые карты в различных форматах с возможностью включать и выключать отображение. Платформа - ОС 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 и установлено сертифицированное ПО.