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

Предоставление доступа к ПБД

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » ГИС Сервер
Страницы: 1 2 След.
RSS
Предоставление доступа к ПБД
 
Здравствуйте.

В Руководстве системного программиста на ГИС-сервер (gisserveradminlin.pdf), в разделе описания контрольного примера, рассказывается, как можно предоставить доступ к ПБД ко всем слоям пакетом - через файл проекта *.MPT. Для контрольного примера такой файл идёт в установочном пакете. А как мне такой файл сгенерить для своей БД, т.е. для своего набора файлов *.dbm? В Руководстве на этот счёт ничего не сказано. Программы подходящей я в /usr/gisserver или /usr/SpDBsvc не нахожу. Структура *.MPT в Руководстве также не раскрыта, чтобы можно было его хоть в текстовом редакторе вручную набить.

Как быть?
 
Цитата
Сергей Гамов написал:
Здравствуйте.

В Руководстве системного программиста на ГИС-сервер (gisserveradminlin.pdf), в разделе описания контрольного примера, рассказывается, как можно предоставить доступ к ПБД ко всем слоям пакетом - через файл проекта *.MPT. Для контрольного примера такой файл идёт в установочном пакете. А как мне такой файл сгенерить для своей БД, т.е. для своего набора файлов *.dbm? В Руководстве на этот счёт ничего не сказано. Программы подходящей я в /usr/gisserver или /usr/SpDBsvc не нахожу. Структура *.MPT в Руководстве также не раскрыта, чтобы можно было его хоть в текстовом редакторе вручную набить.

Как быть?
Добрый день!

Сформировать mpt файл можно из любого настольного продукта.
Вы открываете все сформированные DBM файлы в рамках активного окна. Затем вызываете задачу "Файл - Сохранить как" и выбираете тип "Проект карты - MPT".
По факту, mpt это текстовый документ. Вы можете контрольный пример открыть и заменить пути  тестовых DBM на свои
С уважением, Демиденко Р.А.
 
Цитата
Роман Демиденко написал:
Сформировать mpt файл можно из любого настольного продукта.
Гм... А не перебор это - ради MPT аж целый настольный продукт использовать? Есть же веб-конфигуратор, dbm в нём создаются, ну сделайте по-человечески, чтобы тесно связанные функции в одной программе были сосредоточены.
Ну или хоть формат распишите. Вы понимаете, ваши программы далеко не всегда сами по себе используются. Их, например, встраивают в собственные продукты, как инфраструктурные компоненты используют.
Вот у нас, допустим, веб-приложение. Как это я пользователю предложу всё делать в веб-приложении, а вот проект создавать в десктопном?

Понимаю, что сейчас в веб-конфигураторе у меня редактор/генератор MPT не появится. Но хоть формат опубликуйте, дальше уж я сам.
 
Ну и, кстати говоря, MPT, сгенерированный с помощью ГИС "Оператор" визуально не совпадает с MPT из состава контрольного примера. В контрольном примере записаны имена файлов *.dbm, а в сгенерированном десктопным приложением - ссылки на ГИС-сервер вида HOST#IP-address#IP-port#ALIAS#<имя файла dbm>. Совсем не то же самое.

А кроме того, в контрольном примере в секции [SITELIST] dbm-ки перечислены в формате PATHn=<имя файла>, где n - порядковый номер, а в сгенерированном на каждый dbm две строки, одна вида  PATHn%=%HOST#IP-address#IP-port#ALIAS#<имя файла dbm>, а вторая вида PATHn= HOST#IP-address#IP-port#ALIAS#<какая-то белиберда>.dbm, что тоже совсем не одно и то же.

Белиберда, возможно, появилась оттого, что я в редакторе dbm задал названия слоёв кириллицей, а редактор, соответственно, сформировал по названиям слоёв названия файлов dbm. Но, во-первых, редактор позволил это сделать. Во-вторых, в документации ничего про запрет использовать кириллицу не сказано. В-третьих, ГИС "Оператор" эти слои с ГИС-сервера нормально прочитал и потом у себя отобразил. Из чего я делаю вывод, что со слоями и с dbm всё нормально.

Прошу подойти к вопросу конструктивно.
 
Вариант mpt
Код
[MAP]
PATH=слой1.dbm
[SITELIST]
PATH1=слой2.dbm
PATH2=слой3.dbm
PATH3=слой4.dbm
имя%=%значение - применяется для записи строки "значение" в кодировке UTF-8

Вариант записи может быть любой. Если есть оба варианта, то приоритет у формата UTF-8.

Такой вид mpt подразумевает, что проект и данные расположены внутри виртуальной папки. Права доступа к слоям
определяются по правам пользователя к виртуальной папке (чтение/запись/копирование/печать и т.п.).

Запись вида HOST#IP-address#IP-port#ALIAS#<имя файла dbm> может применяться, если отдельные слои (dbm или другие данные)
определены для пользователей со своими правами доступа. Они могут иметь произвольное размещение.
 
Спасибо,  попробую.
А все остальные параметры в MPT на что-то потенциально полезное для разработчика могут повлиять? Про них не расскажете?
 
Добрый вечер.
Как-то это всё непонятно работает. Не так, как ожидается. Прошу пояснений.

Исходные данные: имеем пользовательский классификатор rsc с несколькими слоями. На гис-сервере имеется карта, хранящаяся в файле sitx. Эта карта опубликована как слой через веб-сервис. Этот слой включен в проект на гис-вебсервере. Всё с этим слоем хорошо - отображается, масштабируется, редактируется - короче говоря, никаких с ним проблем.

Теперь я меняю бэкенд, вместо файла sitx карту теперь будем хранить в пространственной базе данных на PostgreSQL. Делаю всё по документации, а также в соответствии с полученными рекомендациями здесь, на форуме. Из классификатора rsc с помощью rsc2xsdimg.exe генерю xsd-схему. Далее из неё с помощью runxsd2sql.bat генерю скрипт sql. Этот скрипт выполняю в предварительно подготовленной БД (замечу, что все таблицы, соответствующие классификатору, помещаю не в схему public, а в другую). Выполняю скрипт, настраивающий лог для этой базы. С помощью runmap2spdb.bat перегоняю данные из sitx в базу. Всё отрабатывает ожидаемо, данные оказываются разложенными по своим таблицам. Готовлю файлы dbm, по одному на каждый слой, в них указываю таблицу слоя, классификатор (тот самый, пользоватльский, для всех один и тот же), выбираю вариант кодирования типов объектов с указанием кода и характера локализации из метрики, указываю требуемые объекты классификатора из соответствующих слоёв. Формирую проект MPT, включающий все эти dbm, при этом в качестве первого слоя (в секции [MAP]) выбираю слой SYSTEM, все остальные слои перечислены в конце файла проекта (в секции [SITELIST]). И, наконец, регистрирую всё это дело на ГИС-сервере, как в документации расписано. Затем получившуюся из mpt карту публикую на веб-сервисе, и включаю её в проект на ГИС-вебсервере.

И что я вижу? Карта, как и в случае прежнего бэкенда (sitx), имеет в своём составе один слой, соответствующий пользовательскому классификатору, и отображается правильно - как и прежде. Перехожу в режим редактирования, создаю объект по пользовательскому классификатору, задаю ему мышью метрику, ввожу значения семантик. Сохраняю, успешно. Объект на карте отображается верно, семантики сохранены. НО! В базе данных я обнаруживаю запись об этом объекте не в таблице, соответствующей слою классификатора, к которому относится наносимый условный знак, а в таблице SYSTEM! При этом, естественно, никакие семантики в базе не сохранены - слой-то не тот. И после перезапуска ГИС-сервера введённые значения семантик теряются.

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

Как и ранее, готов предоставить дополнительную информацию и заранее благодарен поддержке за оперативность и отзывчивость.
Изменено: Сергей Гамов - 23.05.2021 23:56:46
 
Добрый день.
В настоящий момент технология редактирования mpt проекта еще не доработана и находится в процессе разработки.
Все изменения для mpt через web попадают на первую карту в списке.
Как временное решение можете опубликовать каждый dbm слой для редактирования отдельно в сервисе и в GIS WebServer SE.
 
Цитата
Владимир Железняков написал:
Как временное решение можете опубликовать каждый dbm слой для редактирования отдельно в сервисе и в GIS WebServer SE.
Технически это, безусловно, возможно. Но неприемлемо, потому что при этом поменяются алгоритмы действий конечного пользователя и представление у него структуры карты. И слишком велика вероятность ошибочного ввода данных, а контроля нет.

Существуют ли конкретные планы по окончательному доведению предоставления доступа к БД через mpt?
Изменено: Сергей Гамов - 24.05.2021 10:09:09
 
Ориентировочно 2-3 месяца, возможно раньше.
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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