我想在pl/python3 / postgis中创建一个函数,它返回一组几何记录(例如,点)。我设法用我的点的坐标创建了一个字典,但我不知道如何将它们转换成真正的postgis“点”几何。这是我到目前为止的代码:
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();发布于 2014-12-23 10:00:11
您可以使用plyp.execute访问几何对象并从函数中返回它们--尽管返回类型本质上是表示几何的十六进制编码字符串。
CREATE OR REPLACE FUNCTION grid_points ()
RETURNS SETOF geometry AS $$
pts = plpy.execute ("SELECT geom FROM sometable WHERE ...")
return pts
$$
LANGUAGE plpython3u;在您的示例中,您可能希望使用ST_MakePoint或ST_GeomFromText在过程中实际构造点。
或者,您可以在plpython proc中使用像shapely这样的库。
https://stackoverflow.com/questions/27610623
复制相似问题