在结账前核对地址与所填邮政编码是否一致
订单表单上邮政编码与城市不一致,看起来只是个小笔误,直到包裹被送到国内完全不同的地方。
对于一家小型物流公司的调度团队反复提出的那一个具体需求来说,完整的车队跟踪平台大大超出了实际所需。这个需求就是:在送货卡车到达或离开某个特定的重要客户站点时,立即发出一条简单通知。这对希望提前得知货物即将送达的客户很有用,也能让公司自己记录货物实际到达目的地的时间,而不必依赖司机自己的日终报告。
实现这一点所需的构件比完整的跟踪平台简单,而且公司已经通过司机携带的移动设备,从送货车辆持续获取 GPS 坐标。它需要的是一种把客户站点定义为边界、并据此检查传入坐标的方法,以及在需要人类可读的描述而不是一对数字时,理解原始坐标的方法。
对于每个重要客户站点,公司通过 /v1/forward 对站点地址进行地理编码,获得一个固定的参考坐标,然后在该点周围定义一个小半径,作为站点的到达边界。这是一个简单的半径检查,而不是复杂的自定义形状边界,因为对于公司的实际站点来说,半径已经足够精确,这些站点大多是仓库和装卸码头,没有需要担心的特殊或不规则边界。随着卡车的 GPS 坐标不断传入,公司自己的后端计算每辆被跟踪卡车到每个相关站点参考点的距离,在卡车进入半径范围内时触发到达提醒,在卡车重新离开时触发离开提醒。
/v1/reverse 在这个系统中为人工环节提供辅助:当调度员需要审查一条提醒或调查一种意外模式时(例如一辆卡车似乎离开了站点又立即返回),把原始坐标解析回可读的地址和位置描述,能让调度员的审查明显快于根据地图上一对需要人工调查才能解读的数字来工作。
公司有意让这一方案保持简单,而没有朝完整的路线优化或车队管理平台方向构建,因为它要解决的具体问题,即针对一份确定的重要站点列表发出到达和离开提醒,并不需要大型平台所提供的大部分功能。只构建所需的部分,使项目规模小到足以快速上线,并且无需专门的工程团队就能维护。
收到到达提醒的客户表示提前通知确实很有价值,尤其是现场人手有限、需要提前几分钟得到提醒以便安排人员准备收货而不至于措手不及的客户。这对客户来说是一项小小的运营改进,而物流公司为此付出的构建成本相对很低。
站点地理编码是一次性的设置成本,由于需要这种特殊处理的高优先级站点很少,这笔成本很小;逆地理编码的使用量则取决于调度员需要调查某条提醒的频率,是轻量、偶尔的工作量,而不是持续的。对于这种规模的公司,两者都轻松落在每天的免费配额之内。
两个端点的文档分别位于 /docs/forward-geocoding/ 和 /docs/reverse-geocoding/。