使用geojson-geometries-lookup无法检测到MultiPolygon内的点
修复建议
核心问题:坐标顺序不符合GeoJSON规范
GeoJSON 中 Point 类型的坐标格式要求是 [经度, 纬度],但你代码里的 point1 把纬度放在了前面、经度在后,这是导致 lookup 方法无法识别的直接原因。
修复步骤
修正坐标顺序
将point1的坐标调换顺序,改为[-118.24369812011719, 34.05220031738281]。验证GeoJSON结构(可选但推荐)
确认CA_LAX的MultiPolygon符合规范:- 确保MultiPolygon的层级结构正确(格式为
[[[坐标对]]]) - 检查子多边形的坐标顺序遵循右手定则(外环逆时针、内环顺时针)
- 确保MultiPolygon的层级结构正确(格式为
修复后的代码
const geojson = JSON.parse(data) const glookup = new GeoJsonGeometriesLookup(geojson); // 修正为GeoJSON标准坐标顺序:[经度, 纬度] const point1 = {type: "Point", coordinates: [-118.24369812011719, 34.05220031738281]}; console.log(glookup.getContainers(point1));
额外排查点
如果修正坐标后仍无结果:
- 检查传入的GeoJSON是否为
FeatureCollection类型,若为单个Feature,确认初始化时未遗漏必要属性 - 尝试使用
geojson-geometries-lookup的getNearest方法辅助验证点与目标多边形的空间关系
内容的提问来源于stack exchange,提问作者Georg K.
相关产品推荐
相关产品推荐

