首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PostGIS中计算两个多边形共享边的长度

在PostGIS中计算两个多边形共享边的长度
EN

Stack Overflow用户
提问于 2015-08-06 14:35:19
回答 1查看 1.1K关注 0票数 2

我有一个包含几个多角体的数据库。每个多边形都有很多定义它的节点。此外,每个多聚体至少有一个邻居。为了进行计算,我需要确定两个相邻多边形的共享边的长度。在示例图片中,显示了这样的情况。这两个多边形共用红色的边。如何在PostGIS的帮助下计算红边的长度?我没找到那个功能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 00:50:11

你可以得到两个多边形的交叉点,然后得到任意LineStrings的长度。例如,以两个几何图形为例:

代码语言:javascript
复制
SELECT ST_Length(ST_CollectionExtract(ST_Intersection(a_geom, b_geom), 2))
FROM (
  SELECT
    'POLYGON((70 170,160 250,240 220,270 130,185 62,90 80,70 170))'::geometry AS a_geom,
    'POLYGON((160 250,236 314,380 290,390 150,270 130,240 220,160 250))'::geometry AS b_geom
) f;

或对表mypoly中的所有多边形执行此操作,即触摸

代码语言:javascript
复制
SELECT a.gid AS gid_a, b.gid AS gid_b,
  ST_Length(ST_CollectionExtract(ST_Intersection(a.geom, b.geom), 2))
FROM mypoly a, mypoly b
WHERE a.gid < b.gid AND ST_Touches(a.geom, b.geom);

您还可以探索拓扑扩展,它是PostGIS 2.x的一部分。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31858612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档