应用场景

构建按距离派单的现场服务调度工具

指派最近的空闲技术人员听起来理所当然,但看看大多数小型调度系统的实际运作方式就会发现,它们往往只看空闲情况,把下一单交给最先完成当前工作的技术人员,而不管这位技术人员是否恰好位于服务区域中离新工单最远的一端。一家拥有技术人员车队的家电维修公司发现,这种做法正在悄悄地全面增加驾驶时间,技术人员横穿整个服务区域去处理附近同事只需一小部分时间就能到达的工单。

要解决这个问题,就需要以坐标形式知道每位技术人员当前所在的位置以及每个新工单的位置,而不是把两者都当作调度员只能凭对本地区的记忆去推断的文字描述。新工单地址在进入时就通过 /v1/forward 进行地理编码,每个服务请求在安排的那一刻就被转换为坐标。技术人员的位置通过他们自己的移动应用在各工单之间移动时进行跟踪,直接以设备位置坐标的形式到达,本身不需要地理编码;但逆向查询 /v1/reverse 为调度员提供了技术人员当前所在位置的可读街道级描述,这对于扫一眼屏幕、需要快速了解技术人员位置而不是解析原始坐标的调度员很有用。

双方都以坐标表示后,调度系统就能计算每位空闲技术人员与新工单之间的实际距离,并综合距离和空闲情况进行指派,而不只看空闲情况。权重的设置使得一位稍晚才有空但近得多的技术人员,往往比一位此刻有空但距离很远的技术人员更适合被指派,这一取舍是公司在几周内观察实际指派结果后调整出来的。

可衡量的效果是整个车队每单平均驾驶时间的减少,这直接转化为每位技术人员每天完成更多工单,因为在工单之间驾驶的时间少了,可用于工作本身的时间就多了。每单的燃油成本也有所下降,这是公司启动项目时并未专门想解决的一个较小但实实在在的额外收益。

公司保留了调度员的参与,而没有完全自动化指派,因为距离是一个重要因素但不是唯一因素,技术人员针对某个家电品牌的特定认证,或客户对曾经服务过的技术人员的偏好,有时比纯粹以距离最优的指派更重要。因此该工具把按距离排序的建议作为调度员可以推翻的强默认值呈现,而不是一个完全没有人工检查的自动指派。

请求量随工单量增长,每个新工单一次地理编码调用,外加少量用于向调度员显示技术人员位置的逆向查询,对于运营这种规模车队的公司来说完全在每天的免费配额之内,如果公司扩展到更多服务区域,还可以使用预付额度获得余量。

两个端点的文档分别位于 /docs/forward-geocoding/ 和 /docs/reverse-geocoding/。