我正在使用Google Maps API来对用户进行地理位置定位,如果他们在洛杉矶市,它将告诉他们他们所在的LAPD报告区域。我从以下。我想获取地理位置坐标,并使用Turfjs的booleanPointInPolygon确定它是否在RD中,如果是,则返回该RD。但是,无论我做什么,即使我显然处于RD /多边形中,turfjs函数也始终返回false。我下载了here并将其作为常规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); });据我所知,turf.point和turf.polygon数组格式正确,执行时没有错误。我已经完成了草皮功能,一切似乎都很好。给定代码示例(位于RD 124的LA City Hall)中的坐标,我希望结果返回true,但是“ found”返回1135 false。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我建议检查两件事:turf.point坐标必须是Lon,Lat而不是Lat,Lon。这可能是问题所在,因为-118不是有效的纬度。 Lon,Lat是一个非常常见的约定。还要检查传递给booleanPointInPolygon的值。(文档)[https://www.npmjs.com/package/@turf/boolean-point-in-polygon]显示坐标数组包装为两个数组,而不仅仅是一个。 (adsbygoogle = window.adsbygoogle || []).push({});
10-04 21:49