识别多边形内的点(包括边界和边上的点)

时间:2018-08-08 11:07:53

标签: javascript turfjs

我正在使用turf.js在多边形内找到一个点,我发现问题仍然存在于多个用例中,其中一个用例如下所述(例如,对于点(X = 32.8,Y = 40 )。我还绘制了图像以供参考, turf.booleanPointInPolygon 显示为false。 Image of Graph plot

var turf = require("@turf/turf");

var pt = turf.point([32.8,40]);
var poly = turf.polygon([[

 [ 7.2  ,           160.0],
[38.3,              30.0],
[65.1   ,           30.0],
[62.3   ,           96.0],
[18.4   ,           325.0],
[7.6    ,           380.0],
[7.5    ,           307.0],
[7.4    ,           234.0],
[7.2    ,           160.0]

]]);

var bool = turf.booleanPointInPolygon(pt, poly, {ignoreBoundary: false});
//bool = false, even though the point is inside the polygon

无法识别多边形内的点,这是来自turf.js的故障。 如何向turf.js报告。任何人都可以帮助解决此问题。

2 个答案:

答案 0 :(得分:2)

我使用javascript中的Math.log(x)转换了笛卡尔x轴数组,y轴数组和要找到的点以进行对数缩放,然后馈入turf.js来创建多边形和要在其中找到的点。现在可以正确渲染。主要缺陷是我以对数比例绘制坐标,并通过传递笛卡尔数据(在发送至草皮之前将其转换为对数比例)来寻求草皮解决方案

答案 1 :(得分:0)

您的点不在多边形内。 turf.js中没有错误。您可能被欺骗了,因为绘制的图形完全错误。

这是多边形在图形上的外观。您会发现您的(J)点显然在外面:

enter image description here