首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从plpython/Postgis返回SETOF点

从plpython/Postgis返回SETOF点
EN

Stack Overflow用户
提问于 2014-12-23 05:22:06
回答 1查看 376关注 0票数 1

我想在pl/python3 / postgis中创建一个函数,它返回一组几何记录(例如,点)。我设法用我的点的坐标创建了一个字典,但我不知道如何将它们转换成真正的postgis“点”几何。这是我到目前为止的代码:

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2014-12-23 10:00:11

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

代码语言:javascript
复制
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在过程中实际构造点。

或者,您可以在plpython proc中使用像shapely这样的库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27610623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档