本文介绍了Turf booleanPointInPolygon始终返回False的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要检查点是否在多边形中:

if (turf.booleanPointInPolygon(pt, poly_coordinates)) {
    console.log("INSIDE");
} else {
    console.log("OUTSIDE");
}

JSON.stringify(console.log(Pt))显示:

{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[2.1362996,41.391026000000004]}}

JSON.stringify(console.log(poly_coordinates))显示:

[[[2.1666008868967594,41.420742231455876],[2.1423966327457435,41.39486355482066],[2.159906093195218,41.38185595077573],[2.1666008868967594,41.420742231455876]]]

注意:所有内容均采用经纬度格式。

为什么booleanPointInPolygon返回false?此特定情况只是一个示例点和一个可能位于多边形外部的示例多边形。但是,多边形是否包含整个世界并不重要,booleanPointInPolygon仍然为任何点返回false。

推荐答案

如果这是您的代码,那么问题是poly_coordinates不是多边形,它只是一个多边形的坐标部分。

您应该有如下内容:

const poly = { type: 'Polygon', coordinates: poly_coordinates }
turf.booleanPointInPolygon(pt, poly)

这篇关于Turf booleanPointInPolygon始终返回False的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-18 08:52