gpt4 book ai didi

postgresql - 从 plpython/Postgis 返回 SETOF 点

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

我想在 pl/python3/postgis 中创建一个返回一组几何记录(例如点)的函数。我设法用我的点的坐标创建了一个字典,但我无法弄清楚如何将它们变成实际的 postgis“点”geom。到目前为止,这是我的代码:

CREATE OR REPLACE FUNCTION grid_points()
RETURNS text AS
$$

grid_cell_length_x = 2
grid_cell_length_y = 1

grid_points = {}

for i in range(0, 3):
for j in range(0,3):
key = "grid_poin_" + str(i) + "" + str(j)

x = 5 + i * grid_cell_length_x
y = 10 - j * grid_cell_length_y

value = (x, y)
grid_points[key] = value

return(
grid_points)

$$
LANGUAGE plpython3u;

select grid_points();

最佳答案

您可以使用 plyp.execute访问几何对象并从函数返回它们——尽管返回类型本质上是表示几何的十六进制编码字符串。

CREATE OR REPLACE FUNCTION grid_points () 
RETURNS SETOF geometry AS $$

pts = plpy.execute ("SELECT geom FROM sometable WHERE ...")

return pts
$$
LANGUAGE plpython3u;

还有一些 examples on this link .

在您的情况下,您可能希望使用 ST_MakePoint 或 ST_GeomFromText 在过程中实际构建点。

或者,您可以使用类似 shapely 的库在 plpython 过程中。

关于postgresql - 从 plpython/Postgis 返回 SETOF 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27610623/

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