我想使用PostGIS创建一个多边形表.表’point’中的每一行都有三个点ID.
表’point_location’具有点的位置信息.我用Google搜索了这个问题,但未找到答案.以下代码有什么问题?
表’point_location’具有点的位置信息.我用Google搜索了这个问题,但未找到答案.以下代码有什么问题?
select ST_GeomFromText('polyGON((' || b.x || ' ' || b.y || ',' || c.x || ' ' || c.y || ',' || d.x || ' ' || d.y || ',' || b.x || ' ' || b.y'))',4326) as polygon from point a,point_location b,point_location c,point_location d where a.p1=b.point_id and a.p2=c.point_id and a.p3=d.point_id
解决方法
从点构造多边形的更好方法是使用
PostGIS’ geometry constructors.这样,您就可以避免转换二进制→文本→二进制(
WKB → WKT → WKB),这种速度较慢,有损,并且容易出现文本格式分散,如缺失所示||.例如,尝试:
SELECT ST_Makepolygon(ST_MakeLine(ARRAY[b,c,d,b])) FROM point a,point_location d WHERE a.p1=b.point_id and a.p2=c.point_id and a.p3=d.point_id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。