有可能在SQLAlchemy查询级别找到哪些人在圈内,中心c =(x,y)和radius = r?

时间:2013-09-20 11:21:21

标签: sqlalchemy

我需要找到所有半径相等的人。 可以在SQLAlchemy查询级别找到哪些人在圈内,中心c =(x,y)和radius = r?

class PersonModel(Base):
    x = Column(Float, nullable=False)
    y = Column(Float, nullable=False)
    # other data like name and so on

我可以很容易地找到所有正方形或遍历所有然后在python里面for循环消除所有已经出来但我想知道我可以在查询级别消除,它会更快吗?

1 个答案:

答案 0 :(得分:0)

我怀疑你需要在某些数据库内距离函数上使用sqlalchemy.func。一些空间数据库后端直接支持距离函数,如SpatiaLite和PostGIS,但您需要编写一个数据库内SQL函数来调用。可以在this answer中找到使用SQLA for SQLite执行此操作的一个很好的示例。