powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема с вставкой GEOMETRYCOLLECTION в ST_GEOMETRY-колонку
2 сообщений из 2, страница 1 из 1
Проблема с вставкой GEOMETRYCOLLECTION в ST_GEOMETRY-колонку
    #40049953
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Начинаю осваивать возможности работы с геометрическими объектами Postresql. В качестве первой задачи нужно перенести из другой СУБД табличку с геометриями. Для тестового переноса создаю табличку:

Код: plsql
1.
2.
3.
4.
create table data_test.aaa_tracks(
	object_id integer not null generated by default as identity primary key,
	track st_geometry not null
)



И запускаю простую инструкцию добавления записи (WKT сгенерирован другой СУБД и проверен на валидность несколькими разными средствами, хотя и на глаз видно, что он корректен):
Код: plsql
1.
insert into data_test.aaa_tracks(track)	values(st_geometry('GEOMETRYCOLLECTION(LINESTRING(131.96344 43.89660573, 131.963521 43.89653))', 4326))


Получаю ошибку:
авторERROR: ОШИБКА: ESRI: invalid input or geometry type[-3]: "GEOMETRYCOLLECTION(LINESTRING(131.96344 43.89660573, 131.963521 43.89653))"
SQL state: 22P02

Также пробовал не указывать SRID:
Код: plsql
1.
insert into data_test.aaa_tracks(track)	values(st_geometry('GEOMETRYCOLLECTION(LINESTRING(131.96344 43.89660573, 131.963521 43.89653))'))


Получаю ошибку:
авторERROR: ОШИБКА: ESRI: invalid hexa character in hexa string [30000]:
LINE 2: ...to data_test.aaa_tracks(track) values(st_geometry('GEOMETRYC...
^
SQL state: 22P02
Character: 61

В Гугле ничего по таким ошибкам не находится. Добрые люди, подскажите - в чем не прав/где ошибся?
...
Рейтинг: 0 / 0
Проблема с вставкой GEOMETRYCOLLECTION в ST_GEOMETRY-колонку
    #40050135
Ceib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выяснил, что тип "st_geometry" не родной для Postgre/PostGIS - судя по всему, он добавляется с функционалом ArcGIS. Пока не нашел в документации ArcGIS на то явного указания, но этот тип, судя по всему, принимает только геометрии только одного вида - точки, линии или полигоны.
Поменял тип колонки с st_geometry на PostGIS-кий geometry и все заработало:
Код: plsql
1.
2.
3.
4.
create table data_test.aaa_tracks(
	object_id integer not null generated by default as identity primary key,
	track geometry not null
)


Код: plsql
1.
2.
3.
4.
insert into data_test.aaa_tracks(track)	values(ST_GeomFromText('GEOMETRYCOLLECTION(LINESTRING(131.96344 43.89660573, 131.963521 43.89653))', 4326))
INSERT 0 1

Query returned successfully in 116 msec.



Версии СУБД и PostGis, кстати, забыл указать:
Код: plsql
1.
2.
"PostgreSQL 10.3, compiled by Visual C++ build 1800, 64-bit"
"2.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1"
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема с вставкой GEOMETRYCOLLECTION в ST_GEOMETRY-колонку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]