我正在使用谷歌地图 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。