我在Postgres中发现了关于Point类型的问题:http://www.postgresql.org/docs/current/interactive/datatype-geometric.html
有SQLAlchemy版本吗?
我以这种方式存储值:(40.721959482,-73.878993913)
我在Postgres中发现了关于Point类型的问题:http://www.postgresql.org/docs/current/interactive/datatype-geometric.html
有SQLAlchemy版本吗?
我以这种方式存储值:(40.721959482,-73.878993913)
4条答案
按热度按时间xwbd5t1u1#
你可以使用geoalchemy2 whis,它是sqlalchemy的扩展,也可以和flask-sqlalchemy一起使用。
hmae6n7t2#
您可以扩展
UserDefinedType
以实现您想要的功能。Here's an example I found非常接近您想要的
UserDefinedType
子类请注意,Mohammad Amin's answer仅在您的点旨在成为地理点(纬度和经度约束)时才有效。如果你想表示平面上的任何一点,它就不适用了。此外,在这种情况下,您需要安装PostGIS扩展,如果您正在使用地理点,我建议您安装,因为它提供了大量的实用程序和额外的功能。
vxqlmq5t3#
我发现这是穆罕默德的回答的一个小小的修改。
是的,我需要通过geo/sqlalchemy添加一个点列
在我的PostGIS/Gres和PGloader端,因为我是从csv加载的,它将我的纬度和经度点格式化为:
"(40.721959482, -73.878993913)"
我需要在Vim中为我的所有条目(有很多)做一个宏,以强制该列遵循PostGIS中点的创建方式,所以我将csv列转换为point(40.721959482 -73.878993913)
,然后在创建表时将位置列的数据类型设置为geometry(point)location geometry(point)
。jljoyd4f4#
下面是一个在SQLAlchemy中使用本地PostgreSQL点类型的工作示例,而不需要PostGIS或其他扩展,基于其他答案中的建议:
如下所示: