我正在尝试使用TurfJS确定一个点是否在多边形内。但我得到了意想不到的结果。
首先,我测试了这个简单的代码并且运行良好。交点为真,因为点 pt0 是多边形中的点之一。
var pt0 = turf.point([1, 1]);
var poly0 = turf.polygon([
[
[-1, -1],
[-1, 1],
[1, 1],
[-1, -1]
]
]);
var inter0 = turf.intersect(poly0,pt0); // TRUE
var inside0 = turf.inside(pt0,poly0); // FALSE
接下来的代码非常相似,但是交集返回 undefined,而测试点也属于多边形。
var polygon1 = turf.polygon([
[-56.14700317382812,-33.179944977396694],
[-56.14502906799316,-33.16895330313461],
[-56.13266944885254,-33.174557074027],
[-56.14700317382812,-33.179944977396694]
]);
var point1 = turf.point([-56.13266944885254,-33.174557074027]);
var inter1 = turf.intersect(polygon1,point1); // UNDEFINED
var inside1 = turf.inside(point1,polygon1); // FALSE
这是一个JSFiddle。