关于GeoAlchemy2的文档似乎没有完全功能化(与前一个版本相比)。
我有一个模型:
class AddressCode(Base):
__tablename__ = 'address_codes'
id = Column(Integer, primary_key=True)
code = Column(Unicode(34))
geometry = Column(Geometry('POINT'))
我想存储lat/long数据,我试图将其保存在上面的模型中,例如
"51.42553,-0.666085"
这就给了我一个错误:
"Parse error at position 9 within Geometry (the "," char")
有谁能告诉我我哪里做错了?
同样在这个问题上,我该如何回答一个问题。。
显示最近的20个用户:
class AddressCode(Base):
__tablename__ = 'address_codes'
id = Column(Integer, primary_key=True)
name = Column(Unicode(34))
geometry = Column(Geometry('POINT'))
像这样的?
geom_var = "51.42553,-0.666085"
Session.query(User).filter(func.ST_DWithin, 20, geom_var).all()
最佳答案
在GeoAlchemy和GeoAlchemy2中,您需要以名为WKT or Well-known text的知名文本格式或知名的二进制格式指定几何图形。对于一个点,语法是'POINT(X Y)'
,因此'POINT(-0.666085 51.42553)'
请注意,经度是第一位的,然后是纬度。
shapely模块包含处理关系数据库外部几何图形的有用函数,以及Python几何类与WKT、WKB格式之间的轻松转换。
关于python - GeoAlchemy2存储点和查询结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19894692/