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

Javascript 多边形中的点始终返回false,javascript,turfjs,Javascript,Turfjs,我正在使用谷歌地图API对用户进行地理定位,如果他们在洛杉矶市,将告诉他们所在的洛杉矶警察局报告区。我有一个geojson覆盖的报告区RD的加载 我想获得地理位置坐标,并使用TurpJS的booleanPointInPolygon确定它是否在RD中,如果是,则返回该RD 但无论我做什么,TurpJS函数总是返回false,即使我明显处于RD/多边形中 我下载了,并将其作为常规json文件导入本地。 以下是我的功能: getRd() { const repdist

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

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

但无论我做什么,TurpJS函数总是返回false,即使我明显处于RD/多边形中

我下载了,并将其作为常规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);
            });
据我所知,turp.point和turp.polygon数组的格式正确,执行时没有错误。我已经完成了草皮功能,一切似乎都很好


考虑到代码示例LA City Hall(RD 124)中的坐标,我希望结果返回true,但发现返回1135个false。

我建议检查两件事:

turf.point坐标必须为Lon,Lat,而不是Lat,Lon。这可能是个问题,因为-118不是一个有效的纬度。Lon,Lat是一个非常普遍的惯例

还要检查传递给booleanPointInPolygon的值。文档[显示坐标数组被包装在两个数组中,而不仅仅是一个数组中


我建议检查两件事:

turf.point坐标必须是Lon,Lat而不是Lat,Lon。这可能是一个问题,因为-118不是有效的纬度。Lon,Lat是一个非常常见的约定

还要检查传递给booleanPointInPolygon的值。文档[显示坐标数组被包装在两个数组中,而不仅仅是一个数组中


你能从GeoJSON repdist.features数组中发布一个示例对象吗?我找不到你链接的GeoJSON文件,因为你没有链接到GeoJSON文件,而是链接到一个网页。你已经回答了下面的问题,但如果你仍然好奇,这里有一个合适的链接:你能从GeoJSON repdist.features数组发布一个示例对象吗?我找不到你链接的geojson文件,因为你没有链接到geojson文件,而是链接到一个网页。你已经回答了下面的问题,但如果你仍然好奇的话,这里有一个正确的链接:好的先生,我欠你一杯啤酒。我太习惯写LatLng了,以至于我从来没有想过使用LngLat。这确实是个问题。我一直都很好奇这周我没有两天想弄明白这一点。只要我使用了正确的格式,一切都按预期进行了。非常感谢!好先生,我欠你一杯啤酒。我太习惯写LatLng了,以至于我从来没有想过使用LngLat。这确实是个问题。我这周花了两天想弄明白这一点。只要我使用了正确的格式格式,一切正常。非常感谢!