Создание одного представления для трех таблиц из разных СК
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 18 июл 2017, 12:26
- Репутация: 0
Создание одного представления для трех таблиц из разных СК
В БД (postgresql 9.6+postgis) есть три таблицы (table1, table2, table3) с полигонами, каждая их которых содержит геометрию в одной из трех зон МСК (SRID прописаны вручную в spatial_ref_sys).
Все изменения вносятся оператором в таблицы, для просмотра (то есть возможность редактирования не нужна в данном случае совсем) удобнее было бы все данные в одном слое.
Подскажите, возможно ли и как создать одно представление (view0) в EPSG:4326 этих таблиц с сохранением всей атрибутивной информации?
Не будет ли путаницы с первичными ключами, так как в качестве ключа служит int_id (счетчик) у каждой таблицы свой, соответственно уникальность его проверяется в рамках одной таблицы?
Все изменения вносятся оператором в таблицы, для просмотра (то есть возможность редактирования не нужна в данном случае совсем) удобнее было бы все данные в одном слое.
Подскажите, возможно ли и как создать одно представление (view0) в EPSG:4326 этих таблиц с сохранением всей атрибутивной информации?
Не будет ли путаницы с первичными ключами, так как в качестве ключа служит int_id (счетчик) у каждой таблицы свой, соответственно уникальность его проверяется в рамках одной таблицы?
Последний раз редактировалось VorSer 24 ноя 2017, 21:09, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 18 июл 2017, 12:26
- Репутация: 0
Re: Создание одного представления для трех таблиц из разных СК
Код: Выделить всё
CREATE VIEW view0 AS select ST_Transform(geom, 4326) from table1, table2, table3;
Если оставить одну таблицу, то запрос выполняется, но в представлении 1 колонка ST_Transform, которая не содержит геометрии, а при попытке просмотра представления:
"ERROR: Input geometry has unknown (0) SRID"
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Создание одного представления для трех таблиц из разных СК
geometry ST_Transform(geometry geom, text from_proj, text to_proj);"ERROR: Input geometry has unknown (0) SRID"
откуда geom?"ERROR: column reference "geom" is ambiguous"
Union
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 18 июл 2017, 12:26
- Репутация: 0
Re: Создание одного представления для трех таблиц из разных СК
В общем, кое-как получилось
Что смущает:
1. Поле id из представления пришлось убрать: заброс обрабатывается, вьюха создается, но QGIS отказывается её подгружать. Подозреваю, что она его считает первичным ключем и пытается индексировать, а значения повторяются...
2. Почему-то QGISовский менеджер БД пишет, что у этой вьюхи "В полях геометрии нет записей!". Что характерно, слой загружается и показвается как надо и где надо.
Буду благодарен за разъяснения.
Код: Выделить всё
Create view view_0 AS
(select
ST_transform
(geom, '+proj=tmerc +lat_0=0 +lon_0=32.48333333 +k=1 +x_0=1250000 +y_0=-6012900.566 +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +units=m +no_defs'::text, 4326) AS geom,
name, name_print, map_area from table_1)
UNION ALL
(select ... from table_2)
UNION ALL
(select ... from table_3)
1. Поле id из представления пришлось убрать: заброс обрабатывается, вьюха создается, но QGIS отказывается её подгружать. Подозреваю, что она его считает первичным ключем и пытается индексировать, а значения повторяются...
2. Почему-то QGISовский менеджер БД пишет, что у этой вьюхи "В полях геометрии нет записей!". Что характерно, слой загружается и показвается как надо и где надо.
Буду благодарен за разъяснения.
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Создание одного представления для трех таблиц из разных СК
Можно сделать у других таблиц SELECT id+X000000000 ...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей