计算多边形的最长长度

One hundred.
3.
跳到解决方案
12-06-2022 09:44 am
RhettZufelt
通过 常规赛MVP
常规赛MVP

我试图使一个属性规则,自动计算多边形的最长边的长度,但很难算出来。

多边形将永远是一个四边矩形,但可以朝向任何方向。

有人知道用属性规则来完成这个任务的方法吗?

基本上,需要这里的X值:

rhettzufelt_1 - 1670348539705. - png

谢谢你的帮助,

R_

0荣誉
1解决方案

接受的解决方案
JohannesLindner
常规赛MVP
var distance =[] //获取多边形部分var rings = Geometry($feature)。Rings //循环遍历部分(var rin Rings) {var ring = Rings [r] //循环遍历顶点(先跳过)for(var v = 1;v < Count(环);v++) {Push(距离,距离(环[v - 1],环[v]))}}返回Max(距离)

这将得到任何多边形的最长边,无论部分数或形式。你可以通过只提取第一个环并只检查前三个顶点(给你两条边)来简化它,但它不会产生任何明显的时间差。


祝你有愉快的一天!
约翰内斯

在原帖子中查看解决方案

3回复
JohannesLindner
常规赛MVP
var distance =[] //获取多边形部分var rings = Geometry($feature)。Rings //循环遍历部分(var rin Rings) {var ring = Rings [r] //循环遍历顶点(先跳过)for(var v = 1;v < Count(环);v++) {Push(距离,距离(环[v - 1],环[v]))}}返回Max(距离)

这将得到任何多边形的最长边,无论部分数或形式。你可以通过只提取第一个环并只检查前三个顶点(给你两条边)来简化它,但它不会产生任何明显的时间差。


祝你有愉快的一天!
约翰内斯
JohannesLindner
常规赛MVP

为了完整起见,下面是矩形的简单表达式:

var ring = Geometry($feature)。戒指[0]var d1 =距离(戒指[0],戒指[1])var d2 =距离(戒指[1],戒指[2])返回最大值(d1, d2)

johanneslindner_0 - 1670399501541. - png


祝你有愉快的一天!
约翰内斯
RhettZufelt
通过 常规赛MVP
常规赛MVP

谢谢你!@JohannesLindner这正是我所需要的。

我唯一觉得奇怪的是,它报告的距离是以米为单位的,尽管我的地图和数据是以State Plane英尺为单位的。

文档显示“距离”默认为数据的空间引用,但这似乎不是计算属性规则的情况。

添加units参数就可以了:

Push(距离,距离(环[v - 1],环[v], 'feet'))

再次感谢,

R_

0荣誉