Отображение данных PostGIS в gvSIG и KOSMO

Ответить
Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 06 апр 2009, 11:31

gvsig и cosmo ни в какую не отображают представления postgis - воспринимают геометрические поля как атрибутивные. Это так и было задумано?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение KolesovDmitry » 06 апр 2009, 12:08

На всякий случай хочу уточнить: а у вас в geometry_columns прописана информация о созданных представлениях?

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 07 апр 2009, 11:51

А, понял в чем дело. Нет, не прописаны. А как прописать? И почему тогда эти поля квантрум видит?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение KolesovDmitry » 07 апр 2009, 12:15

Игорь Черниенко писал(а):Нет, не прописаны. А как прописать?
Проще всего попросту скопировать. Например, есть представление goroda_view, тогда смотрим, что в geometry_columns написано про исходную таблицу и вставляем эти значения:

Код: Выделить всё

INSERT INTO geometry_columns 
	(f_table_catalog,f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type)
values 
	('','public', 'goroda_view', 'the_geom', 2, 4326, 'MULTIPOLYGON');
Можно заглянуть сюда, там как раз рассматривается создание представления в PostgreSQL и особенности, связанные с PostGIS.
А почему квантум видит - скорее всего, он просматривает все таблицы и ищет в них поля геометрического типа. не полагаясь на geometry_columns.

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 07 апр 2009, 13:24

Большое спасибо!

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 08 апр 2009, 11:48

не-а, гвсиг как не видела, так и не видит, космо видит и отображает, но совершенно коряво! может с проекциями конфликт (указанными в запросе и по умолчанию в виде)?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение KolesovDmitry » 08 апр 2009, 12:19

Игорь Черниенко писал(а):не-а, гвсиг как не видела, так и не видит, космо видит и отображает, но совершенно коряво! может с проекциями конфликт (указанными в запросе и по умолчанию в виде)?
Хочу уточнить, правильно ли я понимаю:
  • 1) Есть таблица с геометрией t
    2) Есть представление v, созданное на основе t
    3) В geometry_columns информация о представлении v один-в-один совпадает с записью, описывающей таблицу t
При этом:
  • Когда открывается в gvSIG таблица t - все в порядке, а представление v попросту не видно.
    Когда открывается в Kosmo таблица t - все в порядке, а представление v показывается "коряво" (кстати, что значит - коряво?)
    В qGIS и таблица, и представление выглядят совершенно идентично.

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 08 апр 2009, 21:44

Нет, запись в geomertry_column для v не совпадает с записью для t - геометрические поля называются по-разному, в виде геометрическое поле перепроектировано. gvSig представление видит, но воспринимает геометрическое поле как атрибутивное (будь представление прописано в geometry_columns или нет). В cosmo прописанное в geometry_columns представление видно, но отображается оно не в той проекции, которая задана в нем, а вообще непонятно в какой.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение KolesovDmitry » 09 апр 2009, 10:39

Игорь Черниенко писал(а):Нет, запись в geomertry_column для v не совпадает с записью для t - геометрические поля называются по-разному, в виде геометрическое поле перепроектировано. gvSig представление видит, но воспринимает геометрическое поле как атрибутивное (будь представление прописано в geometry_columns или нет). В cosmo прописанное в geometry_columns представление видно, но отображается оно не в той проекции, которая задана в нем, а вообще непонятно в какой.
Слишком много неизвестых в задаче, поэтому давайте сначала выделим место, в котором начинаются сбои. Другими словами, попробуйте создать представление без перепроецирования, т.е. попросту на основе табличных данных и посмотрите, будет ли работать в gvSIG и Kosmo. А уже посмотрев на результаты, будем решать, что, где и как.

andykor
Новоприбывший
Сообщения: 4
Зарегистрирован: 14 окт 2008, 14:38
Репутация: 0

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение andykor » 13 апр 2009, 15:24

проблема решается если в таблице создать поле "serial primary key', например gid.

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение Игорь Черниенко » 13 апр 2009, 23:26

Спасибо за совет. АйДи с таким типом в таблицах есть :о)

andykor
Новоприбывший
Сообщения: 4
Зарегистрирован: 14 окт 2008, 14:38
Репутация: 0

Re: Отображение данных PostGIS в gvSIG и KOSMO

Сообщение andykor » 14 апр 2009, 09:39

тогда наверно данные битые, следует проверить.
Мой алгоритм решения такой проблемы следующий:
1. Создать новую таблицу, где есть serial primary key
2. Добавление геополей функцией SELECT AddGeometryColumn('x_t','the_geom',28409,'MULTIPOLYGON',2); -как пример.
gvSIG "любит" все мульти.
3. Из psql загнать одну запись в таблицу из старой.
4. Проверить
Если gvSIG видит, значит надо править данные.

Ответить

Вернуться в «gvSIG, KOSMO, uDig»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей