POSTGIS获取多边形的最大长度和平均宽度


13

我在postgis中有一个多边形类型表。

我需要自动计算多边形的最大长度:

在此处输入图片说明

第二个是平均宽度:

在此处输入图片说明

我现在怀疑是否可行,因为尽管在其他情况下我所有的多边形将几乎都是矩形的,但它确实可能是模棱两可的,并且几乎不可能区分宽度和高度。

让我们看看是否有人可以对此进行阐述。

问候,


这是一个有趣的问题,而且绝对有可能。至少,您可以简单地确定从每个顶点到其他多项式运行时的直线,但这只是一个解决方案。有关更优雅的解决方案,请访问gis.stackexchange.com/questions/32552/…–
John Powell

您对“最大长度”的说明似乎很清楚,但是您的示例“平均宽度”并不垂直于所述长度。不是吗 然后,您提到“高度”。有点混乱!
Martin F

我认为需要更多有关此平均宽度概念的详细信息,尤其是您正在使用的实际几何示例
raphael 2015年

Answers:


13

对于问题的第一部分:使用相同几何图形两次作为输入的ST_LongestLine怎么样?

SELECT 
  ST_Length(ST_LongestLine(
   (SELECT geom FROM mylayer WHERE gid=1),
   (SELECT geom FROM mylayer WHERE gid=1))
);

对于问题的第二部分:

关于多边形的平均宽度的计算,可以在这里找到一些有趣的答案: 如何计算多边形的平均宽度?


那很聪明,不知道该功能。
约翰·鲍威尔

超级有用。有没有办法从这个最长的线中创建一条折线?
user1655130

7

对于第一部分,请使用ST_MaxDistance

以投影单位返回两个线串之间的二维最大距离。如果g1和g2是相同的几何,则该函数将返回该几何中彼此距离最远的两个顶点之间的距离。

例:

SELECT
gid,
ST_MaxDistance(geom, geom) AS "Max Length"
FROM layer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.