关于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/

10-08 21:41