geoalchemy Вставьте смесь строки и мультилинии с Z в postgis

Я хочу вставить записи из 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))

person geogrow    schedule 15.05.2019    source источник


Ответы (1)


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

И вы также можете сделать геометрию трехмерной => ST_Force3D()(https://postgis.net/docs/ST_Force_3D.html)

Совмещая обе функции:

ST_Force3D(ST_Multi(my_linestring))

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

person boris_atw    schedule 16.05.2019