геоалхимия Вставить смесь линейных и многострочных с Z до postgis - PullRequest
0 голосов
/ 15 мая 2019

Я хочу вставить записи из API в мою базу данных postGIS. Геометрия API отвечает сочетанием линейных и многострочных строк со значением Z.

Как мне смешать оба типа в одном столбце геометрии?

Как только я нажимаю на запись, являющуюся строкой, я получаю ошибку типа данных. Если я использую тип геометрии Geometry , то у I Geometry есть размер Z, а у столбца - нет.

Вот мое определение таблицы. Как я могу определить таблицу, которая может смешать простую / многоканальную строку со значением Z?

class Item(Base):
    __tablename__ = 'test'

    id = Column(Integer, primary_key=True)
    kategori = Column(String)
    geom = Column(Geometry('MultiLineStringZ', dimension=3))

1 Ответ

0 голосов
/ 16 мая 2019

Вы можете заставить вашу LineString быть MultiLineString => ST_Multi () (https://postgis.net/docs/ST_Multi.html)

И вы также можете заставить Geom быть 3D => ST_Force3D () (https://postgis.net/docs/ST_Force_3D.html)

Комбинируя обе функции:

ST_Force3D (ST_Multi (my_linestring))

вы достигнете того, что ищете.

...