Есть карты форматов: sit,sitx,mptz и SXF хочу разместить их на гис вебсервисе полностью через api. Подскажите последовательность вызова методов, чтобы выполнить эту задачу: 1 загрузить файлы 2 создать слой 3 получить ссылку на слой и т.п. прямо какие метода за какими вызывать.
Пользователь
Сообщений: Регистрация: 13.03.2009
14.04.2025 15:51:28
Добрый день. Для публикации данных из обменных форматов достаточно вызвать метод LoadData методом POST и передать в него zip архив с публикуемыми данными (sxf + классификатор).
Либо предварительно загрузив данные на сервер методом, указав путь к данным. метод GET к данным.
Загрузить данные на сервер возможно использовав метод uploadfile или загрузив данные в заранее установленную виртуальную/пользовательскую папку.
При загрузке методом uploadfile данные загружаются в первую доступную для пользователя пользовательскую папку, указанную в настройках сервиса. Вызывается метод POST и дополнительно передаётся часть файла для загрузки Дополнительно передаётся к запросу устанавливаются 2 headers. header - CONTENT-DISPOSITION : attachment; filename=1.tif header - CONTENT-RANGE : bytes 0-4095/325694
При загрузке в пользовательскую папку данные доступны сразу при загрузке. Идентификатор слоя для обращения - USERFOLDER#Алиас_папки/путь к данным.sitx Получить список доступных данных в папке возможно методом getUserFolderList. В сервисе можно настроить автоматическую публикацию данных из виртуальных папок. Данные, попавшие в эту папку будут автоматически публиковаться Для форматов sit,sitx,mptz доступна публикация только через папки виртуальные или пользовательские. В следующих версиях планируется добавление данных форматов в метод LoadData.
Пользователь
Сообщений: Регистрация: 18.08.2022
14.04.2025 16:20:20
Цитата
Владимир Железняков написал: Добрый день. Для публикации данных из обменных форматов достаточно вызвать метод LoadData методом POST и передать в него zip архив с публикуемыми данными (sxf + классификатор).
Либо предварительно загрузив данные на сервер методом, указав путь к данным. метод GET = путь к данным.
Загрузить данные на сервер возможно использовав метод uploadfile или загрузив данные в заранее установленную виртуальную/пользовательскую папку.
При загрузке методом uploadfile данные загружаются в первую доступную для пользователя пользовательскую папку, указанную в настройках сервиса. Вызывается метод POST и дополнительно передаётся часть файла для загрузки Дополнительно передаётся к запросу устанавливаются 2 headers. header - CONTENT-DISPOSITION : attachment; filename=1.tif header - CONTENT-RANGE : bytes 0-4095/325694
При загрузке в пользовательскую папку данные доступны сразу при загрузке. Идентификатор слоя для обращения - USERFOLDER#Алиас_папки/путь к данным.sitx Получить список доступных данных в папке возможно методом getUserFolderList. В сервисе можно настроить автоматическую публикацию данных из виртуальных папок. Данные, попавшие в эту папку будут автоматически публиковаться Для форматов sit,sitx,mptz доступна публикация только через папки виртуальные или пользовательские. В следующих версиях планируется добавление данных форматов в метод LoadData.
метод upload попробую спасибо.
Про автоматическую публикацию не понял, вот что я сделал
положил один файл mptz в каталог /var/Panorama/appservice/Data/ второй файл mptz в каталог /var/Panorama/appservice/UserMaps/
нажал как в инструкции Автоматическое добавление данных, и новых опубликованных карт не появилось, в чём может быть причина?
Пользователь
Сообщений: Регистрация: 13.03.2009
14.04.2025 16:30:46
Чтобы данные из виртуальных папок добавились в настройках папки должно стоять свойство - Обновление данных. Для Пользовательских папок ничего нажимать не надо. Данные из них сразу доступны, но в общий файл настроек они не попадают. Алиас слоя для доступа из пользовательской папки USERFOLDER#Алиас_папки/путь к данным.sitx
Пользователь
Сообщений: Регистрация: 18.08.2022
15.04.2025 06:30:21
Цитата
Владимир Железняков написал: Чтобы данные из виртуальных папок добавились в настройках папки должно стоять свойство - Обновление данных. Для Пользовательских папок ничего нажимать не надо. Данные из них сразу доступны, но в общий файл настроек они не попадают. Алиас слоя для доступа из пользовательской папки USERFOLDER#Алиас_папки/путь к данным.sitx
т.е. если положил файл в /var/Panorama/appservice/UserMaps/ то метод /getCapabilities не вернёт этот слой?
Пользователь
Сообщений: Регистрация: 18.08.2022
15.04.2025 06:49:43
методы /getUserFolderList и /getGisServerFolderList возвращают ошибку
Код
Error: Not Found
Response bodyDownload
<?xml version="1.0" encoding="utf-8" ?>
<ServiceExceptionReport version="15.7.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceException code="SocketError" locator="SOCKET ERROR">Internal mapserver error - socket_read() failed: The resulting command does not correspond to the format received.</ServiceException>
</ServiceExceptionReport>
Response headers access-control-allow-headers: Origin,Content-Type,authorization-token,authorization-email,content-range,content-disposition
access-control-allow-methods: GET,POST,OPTIONS
access-control-allow-origin: *
access-control-expose-headers: Origin,Content-Type,authorization-token,authorization-email,content-range,content-disposition
connection: keep-alive
content-encoding: gzip
content-type: text/xml;charset=utf-8
date: Tue,15 Apr 2025 03:48:53 GMT
server: nginx
transfer-encoding: chunked
vary: Accept-Encoding
написал: Чтобы данные из виртуальных папок добавились в настройках папки должно стоять свойство - Обновление данных. Для Пользовательских папок ничего нажимать не надо. Данные из них сразу доступны, но в общий файл настроек они не попадают. Алиас слоя для доступа из пользовательской папки USERFOLDER#Алиас_папки/путь к данным.sitx
т.е. если положил файл в /var/Panorama/appservice/UserMaps/ то метод /getCapabilities не вернёт этот слой?
Запрос может вернуть пустоту, если на сервисе нет виртуальных папок с ГИС Сервера (пустота - старый формат ответа). Чтобы сервис выдавал данные в новом формате всегда добавляйте параметр serviceversion=151200
Пользователь
Сообщений: Регистрация: 13.03.2009
15.04.2025 09:36:19
Цитата
Константин Батманов написал: методы /getUserFolderList и /getGisServerFolderList возвращают ошибку
Код
Error: Not Found
Response bodyDownload
<?xml version="1.0" encoding="utf-8" ?>
<ServiceExceptionReport version="15.7.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceException code="SocketError" locator="SOCKET ERROR">Internal mapserver error - socket_read() failed: The resulting command does not correspond to the format received.</ServiceException>
</ServiceExceptionReport>
Response headers access-control-allow-headers: Origin,Content-Type,authorization-token,authorization-email,content-range,content-disposition
access-control-allow-methods: GET,POST,OPTIONS
access-control-allow-origin: *
access-control-expose-headers: Origin,Content-Type,authorization-token,authorization-email,content-range,content-disposition
connection: keep-alive
content-encoding: gzip
content-type: text/xml;charset=utf-8
date: Tue,15 Apr 2025 03:48:53 GMT
server: nginx
transfer-encoding: chunked
vary: Accept-Encoding