服务区域判定
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/kxps2026918。
技能介绍
服务区域判定要解决什么问题
在配送调度、上门服务或本地化运营场景中,团队常需要快速校验客户坐标是否落在预设的服务范围内。例如外卖平台判断骑手是否覆盖该用户地址,或家政平台确认用户是否在可上门服务区域。这类需求的核心是“经纬度→布尔值”的判定:给定客户坐标与服务区边界,返回是否在范围内。传统做法可能用平面矩形近似,但实际服务区多为不规则多边形,近似会导致误判;或自行实现几何算法,易出现坐标顺序错误、多边形闭合等问题。
技能如何实现判定
该技能基于@turf/boolean-point-in-polygon与@turf/helpers构建,遵循小四原创的实现思路,核心步骤清晰可复现:
- 定义服务区多边形:按GeoJSON规范存储服务区边界,坐标顺序固定为
[lng, lat](经度在前,纬度在后),多边形需至少4个点(首尾闭合)。 - 创建几何对象:通过
@turf/helpers将客户经纬度转换为Point对象,服务区边界转换为Polygon对象。 - 执行布尔判定:调用
boolean-point-in-polygon函数,传入Point与Polygon,直接返回true(区内)或false(区外)。 - 批量处理:支持列表场景,对每个客户坐标重复上述步骤,快速标记“区内/区外”。
适用边界与注意点
技能聚焦于几何判定,不涉及地图渲染、路径规划等额外功能。使用时需严格遵守:
- 坐标顺序不可混淆:必须遵循
[lng, lat],若源数据为[lat, lng]需提前转换,否则判定结果必然错误。 - 多边形需正确闭合:未闭合的边界会自动补全,但建议提前确认首尾点坐标一致。
- 避免过度简化:不可用矩形近似不规则服务区,必须使用真实多边形边界以保证准确性。
使用场景
- 外卖平台开发者在接入调度系统时,需校验用户收货地址坐标是否落在网点多边形配送范围内,以决定是否接单。
- 上门家政服务后端工程师在生成技师工单前,需调用接口批量比对客户家庭坐标与城市服务区多边形边界,自动过滤区外无效订单。
- 小程序开发者在构建上门服务Demo时,需在提交表单前校验用户定位是否处于预设多边形服务围栏内,并拦截区外请求。
适合人员
- 后端开发工程师,需要快速为业务接口集成高精度的地理位置多边形包含关系校验逻辑,且不想重复造轮子。
- 地图或O2O产品经理,需要在规划配送或上门服务范围时,通过Demo快速验证多边形围栏判定逻辑对业务规则的支撑效果。
- 全栈开发者,正在开发包含位置校验的本地生活服务Demo,需要复用成熟的坐标转换与布尔判定方案以缩短开发周期。