PostGIS CTE存在的问题

时间:2013-03-05 10:51:18

标签: postgis

我正试图在幻灯片22上运行with-as示例 http://www.postgis.us/downloads/oscon2009_PostGISTips.pdf

当我将示例粘贴到SQL-shell中时,我收到以下错误:

  

错误:运算符不存在:记录 - 整数第14行:... x,y,   ST_SetSRID(ST_MakeBox2d(ST_Point(xmin +(x - 1)* g_wid ...   提示:没有运算符匹配给定的名称和参数类型。您可能需要添加   显式类型转换

我正在POSTGIS 1.4.1使用Postgres 8.4 我使用了幻灯片附带的数据 http://www.bostongis.com/downloads/oscon2009/oscon2009_src.zip

我还尝试使用以下网址显示状态数据:

shp2pgsql -s  2163  statesp020.shp public.states  > states.sql
psql -U postgres -d postgis -f states.sql

但得到同样的错误。 任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误“记录 - 整数”(x - 1)可以通过提供generate_series预期别名xy的结果来修复。找到这个部分:

...
(SELECT generate_series(1,x_gridcnt) FROM usext) As x CROSS JOIN
(SELECT generate_series(1,y_gridcnt) FROM usext) As y CROSS JOIN
...

其中xy值实际上称为x.generate_seriesy.generate_series

将其更改为:

...
(SELECT generate_series(1,x_gridcnt) As x FROM usext) As x CROSS JOIN
(SELECT generate_series(1,y_gridcnt) As y FROM usext) As y CROSS JOIN
...

现在它们被称为x.xy.y,或者只是xy