【问题标题】:ST_Intersect on polygons PostGIS : argument of JOIN/ON must be type boolean, not type record多边形 PostGIS 上的 ST_Intersect:JOIN/ON 的参数必须是布尔类型,而不是记录类型
【发布时间】: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)
                                                              ^

这里出了什么问题,如何修复以加入我的多边形文件?

【问题讨论】:

标签: sql postgresql join postgis


【解决方案1】:

您的连接子句似乎错误:您应该比较相关的键列,而不是表别名(bp),例如:

FROM vietnamgis.cadastrewfg b 
INNER JOIN vietnamgis.vnm_adm3 p ON b.you_b_col_ley = p.you_p_col_key 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    相关资源
    最近更新 更多