2

我正在尝试使用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

4

0 回答 0