【发布时间】:2019-12-02 10:27:20
【问题描述】:
我在 PostGIS 中使用此代码来内部连接两个多边形文件。
我的桌子:
table p : vietnamgis.vnm_adm3
ID geom ADM1 .... ....
1 01600000.. tan bin
2 01600000.. san
3 01600000.. dan
Table b : vietnamgis.cadastrewfg
gid geom description ... ...
1 01600000.. house
2 01600000.. commercial
3 01600000.. house
我的代码
DROP TABLE IF EXISTS public.overlap;
CREATE TABLE public.overlap AS
SELECT b.geom As bgeom, p.geom As pgeom,
ST_Intersection(b.geom, p.geom) As intersect_bp
FROM vietnamgis.cadastrewfg b INNER JOIN vietnamgis.vnm_adm3 p ON (b,p)
WHERE ST_Overlaps(b.geom, p.geom)
LIMIT 1;
我在CREATE EXTENSION postgis;之前确实创建过
SELECT PostGIS_Version();
3.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
ERROR: argument of JOIN/ON must be type boolean, not type record
LINE 5: ...mgis.cadastrewfg b INNER JOIN vietnamgis.vnm_adm3 p ON (b,p)
^
这里出了什么问题,如何修复以加入我的多边形文件?
【问题讨论】:
-
您以前在哪里见过
ON (b,p)用作连接条件? -
该示例使用
ST_Intersects(a.the_geom, b.the_geom)而不是(a.the_geom, b.the_geom)
标签: sql postgresql join postgis