标题是我需要的。
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 ok解决方案还是最好使用ST_DWithin或ST_buffer?
答案 0 :(得分: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;
如果仍然不清楚,请发布完整的表格定义以及有关您尝试执行的操作的详细信息。