python postgis ST_包含失败的查询

2024-10-02 18:18:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试以下方法,但总是失败

roomTypeSQL = "SELECT spftype FROM cameron_toll_spatialfeatures WHERE ST_Contains(ST_GeomFromText(%s), ST_geomFromWKB(geometry)) = 'True';"
roomTypeData = (pointTested) # "POINT(-3.164005 55.926378)"
.execute(roomTypeSQL, roomTypeData)

我想从我的表中得到包含特定点的多边形。我也尝试过ST_Within,但也失败了。我认为我的问题与点和多边形的格式有关,但我几乎尝试了所有的组合,但没有任何效果。我试着定义我的多边形,它成功了,但我必须用数据库中的多边形来做。我的postgresql日志文件也不是特别有用。。 有人能看出有什么不对劲吗? 提前谢谢!在


Tags: 方法fromwhere多边形selectstcontainstoll
2条回答

这与python操作符有关。我使用python%操作符正确地输入了所有的sql参数,它起作用了。像这样

roomTypeSQL = "SELECT spftype FROM cameron_toll_spatialfeatures WHERE ST_Contains(ST_GeomFromText(%s),ST_geomFromWKB(geometry))=%s;"

roomTypeData = (pointTested,'t') # "POINT(-3.164005 55.926378)"

.execute(roomTypeSQL, roomTypeData)

python操作符有时会非常令人沮丧。它并不总是如预期的那样工作。我有一些SQL命令的例子,在这些例子中,我不得不将参数直接放在SQL命令中。尽管在Python文档中不建议使用这种方法,但是这种方法仍然有效。在

可能是一个简单的答案…st_包含返回't'而不是'true'。别让波斯特盖特敏感

相关问题 更多 >