地质炼金术士将线串和多线串与Z的混合插入postgis

时间:2019-05-15 11:11:11

标签: sqlalchemy geoalchemy2

我想将API中的记录插入数据库postGIS。 api的几何形状通过Z值的线串和多线串的混合来响应。

如何将两种类型混合到同一几何列中?

我一击到一个是线串的记录,就会收到数据类型错误。 如果我使用的几何类型为 Geometry ,则我的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 :(得分:0)

您可以强制将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))

您将实现您的期望。