![](/img/trans.png)
[英]Turf.js pointsWithinPolygon works for Polygon but not FeatureCollection
[英]Check if one polygon crosses another polygon in Turf.js
您只需要检查红色多边形是否包含在绿色多边形中,如果为真,则将交集设为假。
你可以另外检查这个turf.booleanContains(poly1, poly2)
const poly1 = turf.polygon(polygon1)
const poly2 = turf.polygon(polygon2)
intersected = turf.booleanWithin(poly1, poly2)
如果 poly1 {在你的情况下它是红色多边形}完全在 poly2 {在你的情况下它是绿色多边形},它将返回真。 如果它们只是相交并且不包含在父 poly 中,那么它将返回 false。
检查此草皮文档以获取更多详细信息
对于任何正在寻找解决此问题的方法的人。 您可以使用booleanOverlap来确定两个多边形是否相交。
const p0 = turf.polygon([[
[0, 0],
[0, 1],
[1, 1],
[1, 0],
[0, 0]
]]);
const p1 = turf.polygon([[
[0, 0],
[0, 2],
[0.5, 2],
[0.5, 0],
[0, 0]
]])
const p2 = turf.polygon([[
[-2, -2],
[-2, 2],
[2, 2],
[2, -2],
[-2, -2]
]])
const p3 = turf.polygon([[
[10, 10],
[10, 11],
[11, 11],
[12, 12],
[11, 10],
[10, 10]
]]);
console.log(turf.booleanOverlap(p0, p0)); // false
console.log(turf.booleanOverlap(p0, p1)); // ture
console.log(turf.booleanOverlap(p0, p2)); // false
console.log(turf.booleanOverlap(p0, p3)); // false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.