文/杨舒涵 陈江浩 潘娟
编辑/杜逸敏
一、需求场景
在实体行业中,线下巡查是常见的工作场景,尤其是对于连锁快消门店。某企业旗下有上千家线下门店,需要运营经理定期到每个店铺里检查安全、卫生和业务情况。门店太多,巡店经理逐渐产生了“巡店找路”的需求:巡检人到达门店附近后,能够通过实时定位,在众多门店中快速筛选出附近门店,并按导航到达对应门店。
二、实现方式
该场景的实现方式不难,主要通过工作表和工作流来构成,再搭配PBP(封装业务流程)和集成中心来实现。
1.工作表
定位表
建立定位表,必须配置的基本字段包括:
- 定位
- 自定义函数GETPOSITION获取经纬度数值(x、y)
- 定位名称
在定位表中录入所有门店定位,不仅起到了维护门店基础信息的作用,在后续流程中也能够通过此表查找经纬度在相应范围内的数据,从而实现返回附近门店列表的效果。
查询表
建立查询表,必须配置的基本字段包括:
- 当前定位
- 自定义函数GETPOSITION获取经纬度数值(x、y)
- 当前定位名称
- 距离范围(单位:千米)
- 距离转换为经纬度(单位:度)
- API查询(具体配置见后文)
- 目标地点经纬度(返回的x、y)
- 目标地点名称(返回的name)
距离需要根据千米转换为经纬度差值,我们可以使用公式字段自动运算得出。输入范围单位为千米,计算结果单位为度。
在纬度相等的情况下,经度每隔0.01度,距离相差约1000米;在经度相等的情况下,纬度每隔0.01度,距离相差约1111米;例如:距离范围输入5千米,自动换算出经纬度差值约为0.05度(大于5千米)。对应字段配置如下图。
2.封装业务流程
创建一个新的PBP工作流,配置输入参数类型与名称。在这个环节输入的x、y即为对应定位的经纬度,d为前文工作表中利用公式字段自动计算得出的经纬度差值。
参数类型需要配置正确:注意在赋值时,需要对应的字段类型才能用;名称必须以字母开头,可以包含数字和下划线。
将工作表中的经纬度与距离差值的参数传入PBP,并对范围区间进行运算。
拿到运算结果后,在定位表中进行数值比较,获取定位在范围内的门店数据表。
插入代码块节点,计算门店定位与巡检人实时定位的距离,并将获取到的多个符合条件的定位记录转化为数组对象形式输出。
最后,利用JSON解析节点配置输出参数类型与名称。
明道云封装业务流程会自动生成一套API接口,和定义的输入和输出参数完全对应,供外部系统调用。因此,我们能够将已配置完成的封装业务流程添加到明道云API集成中心内,在工作表内调用API查询接口使用对应的PBP能力。
其中,API响应方式仅旗舰版和私有部署版支持直接返回结果给请求地址, 其他版本需通过回调地址接受返回参数。
3.API设置
在集成中心中配置PBP对应的接口,需要输入的连接参数(例如APIKey等)在明道云自动生成的API开发文档中可以直接查询。本文为简化流程,在配置时选择了无需授权的方式。
在工作表中的API查询字段里配置经纬度输入参数与返回数组设置。
三、实现效果
在工作表中输入当前定位和需要查找的距离范围,点击API查询后,下拉框中会出现定位表中在范围内的所有门店记录。
本功能的实现不仅满足了前文提出的需求场景,做到在多个店铺数据中快速筛选出附近门店,还能够通过配合其他字段权限的配置,确保巡店的真实性,例如距离过远的情况下无法选择到门店,即本条巡店记录无效。
四、导航功能
在实现上文功能的基础上,我们还可以利用两地点的定位信息,调用高德开放平台,在网页中嵌入H5地图,添加导航能力。同时还可以通过URI API直接调起高德地图APP,来达成其他的地图功能。
将本功能添加至【查找表】即可。需要用到的参数包括:两个定位的经纬度、地点名称、出行方式等。这里的拼接方式选择了文本字段的自定义函数拼接。选择文本字段,将默认值设置为函数计算,配置如下。
其中出行方式用单选字段+自定义函数的IF语句控制。单选字段如下,可供用户手动更改。
添加文本字段,默认值为函数计算,配置如下。
在业务规则设置界面调整好相应的字段显隐后,就能做到自动显示导航地图了,在移动端,如有需要可以切换到高德地图APP查看。
文中配置可供参考,其中还存在一些待完善的细节,大家在实际配置中根据需要优化即可。