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