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

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

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebService
Страницы: 1 2 3 4 5 ... 7 След.
RSS
Подключение пространственной БД
 
Пытаюсь подключить пространственную БД, как написано в руководстве GIS WebService SE ч.1 п.3.23 и 3.24.15.
Само подключение зарегистрировано и проверку проходит.
При попытка создания dbm-слоя в окошке "Создание нового представления пространственной БД" при нажатии на кнопку "Создать" ничего не происходит.
https://disk.yandex.ru/i/LZArHvGRiHPZVA
Изменено: Валерий Парусов - 13.06.2024 12:25:33
 
Добрый день.
У вас форма для создания представления пространственной БД заполнилась не полностью .
Для выяснения причины отправьте нам на почту журнал ошибок php интерпретатора, версию вашего php интерпретатора и нажмите F12 в браузере на момент открытия формы, сделайте снимок экрана и вышлите нам.
Изменено: Размик Даллакян - 13.06.2024 16:01:42
 
PHP Version 7.3.31-1~deb10u5+ci202309121223+astra4

Включил вывод ошибок в php.ini error_reporting=E_ALL , но они на экран браузера выдаются а не в файл.
Были ошибки отсутствия прав доступа к некоторым файлам в каталоге app_data - исправил.
После этого стало возможным выбирать имя таблицы (создал в соотетствии с п. 3.24.14 руководства), но выпадающие списки полей пустые.
Ошибки в консоли браузера
Поменял обратно на error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT и все заработало.

А где искать каталог setupdb чтоб запустить скрипт создания журнала? стр. 130:
Цитата
Для создания журнала необходимо выполнить в БД скрипт log_table_pgAdmin.sql, который располагается в директории X/setup_db/PGSQL/02_CreateLOG, где X – путь к каталогу программы. Выполнение данного скрипта осуществляется аналогично запуску скрипта создания объектов (таблиц) базы данных,описанному выше.
Создал пространственную БД https://disk.yandex.ru/i/DNx2AZM9MU2UTw с EPSG: 3395 (основная карта в этойц проекции).
В таблицу добавил полигон,координаты которого прикинул по основной карте, код и ключ объекта "Внешний контур сооружения", площадной взял из классификатора
Код
INS ERT IN TO water (name, geom, excode, skey) VALUES (
    'Площадка',
    ST_GeomFromText('POLYGON((55.75053 37.535005, 55.751095 37.53693, 55.750509 37.537478, 55.7449926 37.535627, 55.75053 37.535005))'),
    30200,
    S0044400000
    )
DBM-слой включил в список слоев приложения
Код
const contenttree = [
    {
         'id': '50',
         'text': 'Москва и МО',
         'expanded': true,
         'img': 'icon-folder'
    },
    {
        'id': '55',
        'text': 'Данные БД',
        'expanded': true,
        'img': 'icon-folder'
   }
];
Код
const gwtkOptions = {
...
'layers': [
        {
            'id': '50',
            'alias': 'Москва и МО',
            'selectObject': true,
            'url': 'http://192.168.204.133/GISWebServiceSE/service.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.3.0&FORMAT=image/png&LAYERS=50&BBOX=%bbox&HEIGHT=%h&WIDTH=%w&CRS=%crs&dt=%dt',
            'version': '13.8.0',
            'gis': true,
            'legend': '*',
            'opacityValue': 100,
            'keyssearchbyname': ['ObjName'],
            'export': [],
            'semanticfilter': ['ObjName', 'building', 'amenity', 'material10'],
            'schemename': '5000m.xsd',
            'hidden': 0
        },
        {
            'id': '55',
            'alias': 'БД',
            'selectObject': true,
            'url': 'http://192.168.204.133/GISWebServiceSE/service.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.3.0&FORMAT=image/png&LAYERS=55&BBOX=%bbox&HEIGHT=%h&WIDTH=%w&CRS=%crs&dt=%dt',
            'version': '13.8.0',
            'gis': true,
            'legend': '*',
            'opacityValue': 100,
            'keyssearchbyname': ['ObjName'],
            'export': [],
            'semanticfilter': ['ObjName', 'building', 'amenity', 'material10'],
            'schemename': '5000m.xsd',
            'hidden': 0
        } 
    ],
Отображаться вроде должен - но ничего не видно
Изменено: Валерий Парусов - 14.06.2024 07:11:31
 
Если сервис под апачем, то логи его и php в логах апача.
По умолчанию. Ничего переключать не надо
 
Опытным путем установлено, что если создавать DBM-слой с EPSG: 3857 и вносить в БД объекты с этим же EPSG
Код
ST_GeomFromText('POLYGON((55.75053 37.535005, 55.751095 37.53693, 55.750509 37.537478, 55.7449926 37.535627, 55.75053 37.535005))',3857)
то в списке объектов слоя они появляются.
А не отображаются они потому, что при извлечении из БД, если посмотреть свойства объекта, то координаты метрики у них неправильные вместо 55.75xxxx стоит 0.00003xxxx
Почему так?
Изменено: Валерий Парусов - 14.06.2024 13:05:33
 
Добрый день!

Что означает
Цитата
Валерий Парусов написал:
вносить в БД объекты с этим же EPSG
?

Вы для заполнения таблицы используете такую команду, как Вы привели?

Цитата
Валерий Парусов написал:
ST_GeomFromText('POLYGON((55.75053 37.535005, 55.751095 37.53693, 55.750509 37.537478, 55.7449926 37.535627, 55.75053 37.535005))',3857)

Тут Вы, скорее всего, указываете градусы WGS-84. При этом указываете код 3857 - это прямоугольная СК в метрах.
При записи в БД PostGIS вам это всё пересчитает в СК таблицы.
Скорее всего, у Вас координаты после такой записи в таблицу будут лежать почти на пересечении гринвича с экватором.
St_AsText что показывает?

Какой SRID указан для таблицы (см. представление GEOMETRY_COLUMNS)?
Для корректной работы DBM ваши пространственные таблицы должны быть корректно зарегистрированы в GEOMETRY_COLUMNS.


DBM не в курсе, какими командами и с каким EPSG вносились данные.
Определяющим является SRID, назначенный таблице.
EPSG, задаваемый в настройках DBM, влияет только на то, в какой проекции формируется кэш данных, выгружаемых из таблицы.

Когда EPSG, указанный в DBM, совпадает с EPSG, в котором хранятся данные, не выполняется никаких дополнительных пересчетов.
По EPSG определяется, это прямоугольная или геодезическая СК, - в первом случае единицы измерения - метры, во втором - градусы.

Разберитесь с СК хранения и СК, в которой Вы записываете туда данные.
 
Да, изменил EPSG слоя и колонки таблицы water на 4326

Цитата
SELECT UpdateGeometrySRID('water','geom',4326);
кроме того, в SQL-запросе надо было сначала долготу указывать, а потом широту
Код
INS ERT IN TO water (excode,skey,name, geom) VALUES (
   30200,
   'S0044400000',
    'Площадка',
    ST_GeomFromText('POLYGON((
   37.535005 55.75053 , 
   37.53693 55.751095 , 
   37.537478 55.750509 , 
   37.53567 55.749797 , 
   37.535005 55.75053))',4326)
    );
И все стало отображаться.
А скрипт log_table.sql лежит здесь /usr/appservice/setupdb/postgres
 
Идем далее.
Для своего DBM-слоя создал новый классификатор https://disk.yandex.ru/i/MEgKcY0iGkRnBA и задал его в настройках пространственной БД https://disk.yandex.ru/i/BRKxtAJC4inKYg
В приложении смотрим легенду основного слоя - все правильно https://disk.yandex.ru/i/mjVtp8ZsZbsqVg (закрашенный синий кривоугольник - объект из БД)
Смотрим легенду БД-слоя - тоже нормально https://disk.yandex.ru/i/mczDK1JhNt9iAw
А вот при попытке создать объект - предлагает перечень из классификатора основного слоя, хотя вверху выбрано слой "БД" https://disk.yandex.ru/i/6_qbGc3gpXn95A

Для работы компонента "Пространственная база данных" в опциях слоя надо указать
Код
'mapdb': 1
Изменено: Валерий Парусов - 15.06.2024 22:17:35
 
Цитата
Валерий Парусов написал:
А вот при попытке создать объект - предлагает перечень из классификатора основного слоя, хотя вверху выбрано слой "БД"  https://disk.yandex.ru/i/6_qbGc3gpXn95A
Есть кто живой в техподдержке?
 
Цитата
Валерий Парусов написал:
А вот при попытке создать объект - предлагает перечень из классификатора основного слоя, хотя вверху выбрано слой "БД"   https://disk.yandex.ru/i/6_qbGc3gpXn95A
Напишите, пожалуйста, параметры запросов с "RESTMETHOD=CREATELEGEND" со вкладки Сеть (Network) режима разработчика.
Для Ваших слоев.
Страницы: 1 2 3 4 5 ... 7 След.
Читают тему (гостей: 2)



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

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