首页 > 解决方案 > 检查点是否在矩形内(全部由地球上的经度/纬度(球体)给出)

问题描述

给定一个坐标为 (long, lat) 的点和坐标为 (long1, lat1), (long2, lat2), (long3, lat3), (long4, lat4) 的矩形的 4 个边点。

我如何检查该点是否在球体上的矩形内(例如矩形可能不是“平面”)?

一个点是否在矩形内的简单检查对我来说很清楚,但如果我们假设点和矩形在地球上,我认为这是不正确的。

您有什么建议或解决方案吗?我需要找到使用 NodeJS 的解决方案。也许有这样的任务框架?

标签: node.jsgeolocationcoordinateslatitude-longitude

解决方案


我建议看看非常有用的geolib,它支持检查一个点是否在多边形中:isPointInPolygon,它应该足以满足您的需求:

const point = { latitude: 51.5125, longitude: 7.485 };
const polygon = [
    { latitude: 51.5, longitude: 7.4 },
    { latitude: 51.555, longitude: 7.4 },
    { latitude: 51.555, longitude: 7.625 },
    { latitude: 51.5125, longitude: 7.625 },
];

console.log(geolib.isPointInPolygon(point, polygon))
<script src="https://unpkg.com/geolib@3.3.1/lib/index.js"></script> 


推荐阅读