node.js - 检查点是否在矩形内(全部由地球上的经度/纬度(球体)给出)
问题描述
给定一个坐标为 (long, lat) 的点和坐标为 (long1, lat1), (long2, lat2), (long3, lat3), (long4, lat4) 的矩形的 4 个边点。
我如何检查该点是否在球体上的矩形内(例如矩形可能不是“平面”)?
一个点是否在矩形内的简单检查对我来说很清楚,但如果我们假设点和矩形在地球上,我认为这是不正确的。
您有什么建议或解决方案吗?我需要找到使用 NodeJS 的解决方案。也许有这样的任务框架?
解决方案
我建议看看非常有用的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>
推荐阅读
- java - 自定义模型的缓存/持久性的最佳方法
- python - When build with py2app can't save in folder
- java - Are there some common techniques for Java Web Servers to detect when approaching overload?
- oracle - 将 SQL Server 查询转换为 Oracle
- rest - Clojure:如何为服务器设置特定的 url?
- vue.js - How to call REST api in NUXT efficiently? (also at component based frontend frameworks)
- c# - 当路径包含哈希 (#) 时,在 Visual Studio 中使用相对路径指定 XML 架构的问题
- arrays - 如何检查对象是否存在于Angular中的对象数组中
- c# - Xamarin.Forms MVVM Entry 和 Property 之间的两种方式绑定不起作用(Entry.Text 未使用 PropertyChanged 更新)
- html - 响应式菜单在显示时将固定栏向下推