首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多边形中的Turfjs点总是返回false

多边形中的Turfjs点总是返回false
EN

Stack Overflow用户
提问于 2019-01-25 19:33:06
回答 1查看 2.9K关注 0票数 4

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

我想得到地理坐标,并使用Turfjs的booleanPointInPolygon来确定它是否在RD中,如果是,返回RD。

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

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

代码语言:javascript
复制
    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);
            });

据我所知,turf.point和turf.polygon数组是正确的,并且在执行时没有错误。我已经跨过草坪活动了,一切看起来都很好。

给定代码示例(LA市政厅,位于RD 124中)中的和弦,我希望结果返回true,但"found“返回1135个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-25 20:15:17

我建议检查两件事:

  • turf.point坐标必须是Lon,Lat而不是Lat,Lon。这可能是一个问题,因为-118不是一个有效的纬度。Lon,Lat是一种非常普遍的习俗。
  • 还检查传入booleanPointInPolygon的值-- 文档显示将坐标数组封装在两个数组中,而不仅仅是一个。
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54371746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档