gpt4 book ai didi

postgresql - Postgis:函数 st_contains 不存在

转载 作者:行者123 更新时间:2023-11-29 12:32:00 24 4
gpt4 key购买 nike

我正在努力让一个简单的 Postgresql/Postgis 语句起作用,我需要一个多边形(在本例中是一个矩形)内的所有点

SELECT * FROM points_table WHERE ST_Contains( ST_GEOMFROMTEXT('POLYGON((51.8121, 0.13712199999997665, 51.9078, 0.21444399999995767))'), points_table.geom)

错误是

ERROR:  function st_contains(geometry, geography) does not exist
LINE 1: SELECT * FROM points_table WHERE ST_Contains( ST_GEOMFRO...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

********** Error **********

ERROR: function st_contains(geometry, geography) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 38

答案来自this question其他人表明我的陈述是正确的。

最佳答案

似乎您在比较 GEOMETRY 和 GEOGRAPHY

如您的消息错误st_contains(geometry, geography)

请确保您的列 points_table.geom 是有效的 GEOMETRY 数据类型而不是 GEOGRAPHY 数据类型。对于此 chek 也适用于您正在使用的 SR,并最终将您的 geomtext 转换为有效的地理 SR

例如,假设您使用 SR 4326

SELECT * 
FROM points_table
WHERE ST_Contains(
ST_Transform(
ST_GEOMFROMTEXT('POLYGON((51.8121, 0.13712199999997665, 51.9078, 0.21444399999995767))')
,4326)
, points_table.geom)

关于postgresql - Postgis:函数 st_contains 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57017052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com