两点直线距离
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/in20261618。
技能介绍
地理坐标距离计算的常见痛点
在地图应用、物流调度、位置服务和许多空间分析场景中,"两个点相距多远"几乎是绕不开的基础问题。然而,自己手写 Haversine 公式或球面三角计算,不仅容易在边界条件上踩坑(比如经度越界、极点附近),还常常在不同项目里反复造轮子。结果就是:每个项目都有一套自己的距离计算代码,精度、单位、错误处理各不相同,维护成本高,且容易引入 bug。
这个技能做了什么
两点地理距离 技能聚焦于一个具体问题:给定两个经纬度坐标,计算它们之间的球面直线距离。它的工作流程清晰且克制:
- 输入校验:首先检查纬度是否在
[-90, 90]区间,经度是否在[-180, 180]区间,任何越界输入都会被拦截并返回明确错误,避免脏数据进入计算流程。 - 距离计算:底层依赖成熟的
geolib库,采用球面大圆距离公式(Haversine),计算两个点之间的最短球面路径。 - 双单位输出:同时返回以米和公里为单位的数值,方便不同场景调用——前端展示用公里,后端存储或精细计算用米。
- 语义标注:输出中明确标注"直线距离,非驾车",避免使用者误将结果当作导航距离。
适用边界与注意事项
这个技能是大圆直线距离的专用计算器,不涉及路线规划:
- 对于几十到几百公里的城市间距离估算,精度足够;但如果你的需求是"从A地开车到B地要多久",这个工具不适用,需要路线规划类服务。
- 输入坐标必须是有效的 WGS84 经纬度(GPS 标准),不适用于其他坐标系(如 GCJ-02 火星坐标系),混用会导致偏差。
- 在极地附近(纬度接近 ±90°)或跨越国际日期变更线(经度接近 ±180°)时,球面近似误差会增大,结果仅供参考。
- 如果你需要更高阶的空间分析(如多边形面积、点到线段距离、最近邻搜索),这个技能只提供基础的两点距离计算,需要结合其他空间库使用。
使用场景
- 开发地图类应用时,用户输入两个经纬度坐标,需要快速校验有效性并计算直线距离,用于地点标注或范围标注
- 物流平台需要估算两个配送点之间的直线距离,辅助判断运输成本或配送范围,不涉及实际路线规划
- 位置服务后端需要对用户提交的经纬度进行合法性校验,过滤越界数据,避免后续距离计算出错
- 地理信息系统集成中,需要临时获取两个坐标点的直线距离,用于数据可视化或空间分析的初步估算
适合人员
- 前端开发工程师,需要在地图页面集成距离计算功能,快速获取两点间的米/公里距离用于展示
- 后端开发工程师,处理位置服务API时,需要校验输入坐标的合法性并返回距离结果,确保接口稳定性
- GIS开发人员,在进行空间数据处理时,需要快速获取两点直线距离用于辅助分析或数据校验
- 移动端开发工程师,开发位置相关功能时,需要计算用户当前位置与目标点的直线距离,用于距离提示或范围判断