作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 shapely 库时遇到了一些问题。现在 equals 函数似乎并不总是有效:
poly1 = Polygon(([220.0, 400, 500], [220.0, 20, 500], [220.0, 20, 0], [220.0, 400, 0], [220.0, 400, 500]))
poly2 = Polygon(([220.0, 20, 500], [220.0, 400, 500], [220.0, 400, 0], [220.0, 20, 0], [220.0, 20, 500]))
print (poly1.equals(poly2))
结果为 false。知道为什么吗?
最佳答案
来自文档:
The Polygon constructor takes two positional parameters. The first is an ordered sequence of (x, y[, z]) point tuples and is treated exactly as in the LinearRing case.
因此,在创建Polygon
之前尝试先对它们(元组)进行排序:
>>> pol1_coords = ([0, 1, 2], [3, 4, 5], [6, 7, 8])
>>> pol2_coords = ([0, 1, 2], [6, 7, 8], [3, 4, 5])
>>> Polygon(sorted(pol1_coords)) == Polygon(sorted(pol2_coords))
True
相反,您仍然会遇到此问题:
>>> Polygon(pol1_coords) == Polygon(pol2_coords)
False
关于Python shapely : . equals 函数并不总是有效:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39328327/
我是一名优秀的程序员,十分优秀!