小编Cha*_*ola的帖子

多边形中的 Turfjs 点始终返回 false

我正在使用谷歌地图 API 对用户进行地理定位,如果他们在洛杉矶市,会告诉他们他们所在的洛杉矶警察局报告区。我有一个从这里加载的报告区 (RD) 的 geojson 覆盖图.

我想获取地理定位坐标,并使用 Turfjs 的 booleanPointInPolygon 来确定它是否在 RD 中,如果是,则返回该 RD。

但是无论我做什么,turfjs 函数总是返回 false,即使我显然处于 RD/Polygon 中。

我下载了geojson 文件并将其作为常规 json 文件导入到本地。这是我的功能:

    getRd() {
            const repdist = require("../assets/LAPD_Reporting_Districts.json");
            let point = turf.point([34.05350702472784, -118.24291762202074]);
            var poly;
            repdist.features.forEach(rd => {
                poly = turf.polygon(rd.geometry.coordinates);
                var found = turf.booleanPointInPolygon(point, poly);
                console.log("found: ", found);
            });
Run Code Online (Sandbox Code Playgroud)

据我所知, turf.point 和 turf.polygon 数组形成正确,执行时没有错误。我已经完成了草坪功能,一切似乎都很好。

鉴于代码示例(洛杉矶市政厅,位于 RD 124)中的坐标,我希望结果返回 true,但“找到”返回 1135 个 false。

javascript turfjs

1
推荐指数
1
解决办法
1781
查看次数

标签 统计

javascript ×1

turfjs ×1