实际业务需求中,会经常碰到需要计算两经纬度点之间直线距离的需求,如打卡数据计算、某半径范围内所拥有门店等需求。为此,自定义了一个函数便于实际数据计算使用。如两个点的经纬度坐标体系不同,可通过 高德百度坐标系转换自定义函数 转换为同体系后再进行距离计算。
使用步骤:
1、下载部署:
先下载帖子最后的 Distance.class 文件,在 ..\WebReport\WEB-INF\classes\com\fr\function 下新建 custom 目录,然后拷贝Distance.class 文件到此目录下,重启设计器。(如需在服务器使用,则重启web服务器即可)。
2、配置:
打开设计器 服务器-函数管理器 ,添加函数,选择已放置到 ..\WebReport\WEB-INF\classes\com\fr\function\custom 目录下的 Distance.class 文件-确定-重命名为getdistince(名字可随意自定义,双击名称位置即可重命名)-确定 即可。
3、使用:
在公式环境中,选择 自定义函数-getdistince(你命名的函数名称) ,双击添加即可。然后为此函数添加四个参数值。
函数解释如下:
- getdistince(numberA1,numberA2,numberB1,numberB2):求两个经纬度点之间的直线距离,单位为米(m)。
- numberA1代表A点的经度,numberA2代表A点的纬度,numberB1代表B点的经度,numberB2代表B点的纬度。
- 备注:参数必须为数字,可为小数或者整数
复制代码
此时可通过 增强公式编辑器(仅支持9.0) 插件查看函数执行结果。点击实时计算
可看到已计算完成两经纬度点之间的直线距离为 7061.7571 (单位为m)。
4、公式说明:
如希望其他用户使用时也可看到此函数的使用方法,可为此函数添加公式说明。
打开 ..\WebReport\WEB-INF\resources\ 下的 functions.xml 文件,找到getdistince函数,在Description标签内部添加公式说明即可(可直接添加以上函数解释,也可根据自己的理解重新编辑描述内容)。
添加完成后重启设计器(或web服务器),设计器中打开选中此函数,在右边的公式说明中即可看到描述
至此,此自定义函数在FR的公式环境中已可以随意使用。
编辑于 2018-6-3 18:39
|