1

标题中是我需要的。

CREATE TABLE newTable1 AS SELECT t2.name,t2.the_geom2
FROM t1,t2
WHERE ST_Contains(ST_Expand(t2.the_geom2,0.05),t1.the_geom1) 
      and t1.gid=2;

CREATE TABLE newTable2 AS SELECT t1.the_geom,t1.label FROM t1 WHERE t1.gid=2;

第一个查询结果是多边形内的所有点,除此之外 5 分钟,该多边形的 gid=2。但我也想显示这个多边形。我试图在第一个查询中写

... AS SELECT t2.name,t2.the_geom2,t1.the_geom1,t1.label...但只有没有多边形的点...

这个问题与已经提出的问题“如何找到远离某个多边形的所有点?”相关联。但是没有得到答复,所以请...

是 ST_expand 好的解决方案还是使用 ST_DWithin 或 ST_buffer 会更好?

4

1 回答 1

1

您不能将两个CREATE TABLE语句合二为一。如果您只是查询数据,为什么要创建表?

听起来您真正想做的是一个查询,它将为您提供多边形内的点和多边形本身。像这样的东西?

SELECT
    t1.the_geom AS polygon, t1.label AS polygon_label, 
    t2.the_geom2 AS point, t2.name AS point_name
FROM
    t1, t2
WHERE
    ST_Contains(ST_Expand(t2.the_geom2,0.05), t1.the_geom1) 
    AND t1.gid = 2;

如果这仍然不清楚,请发布您的完整表定义以及有关您尝试执行的操作的更多详细信息。

于 2010-07-26T23:09:49.200 回答