计算两经纬度点直线距离自定义函数

走在数据追梦路上的瑟瑟发抖的萌新!
实际业务需求中,会经常碰到需要计算两经纬度点之间直线距离的需求,如打卡数据计算、某半径范围内所拥有门店等需求。为此,自定义了一个函数便于实际数据计算使用。如两个点的经纬度坐标体系不同,可通过 高德百度坐标系转换自定义函数 转换为同体系后再进行距离计算。

使用步骤:

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(名字可随意自定义,双击名称位置即可重命名)-确定 即可。
截图201806031747293539.png 截图201806031750348966.png 截图201806031749331689.png

3、使用:
在公式环境中,选择 自定义函数-getdistince(你命名的函数名称) ,双击添加即可。然后为此函数添加四个参数值。
截图201806031755481603.png
函数解释如下:
  1. getdistince(numberA1,numberA2,numberB1,numberB2):求两个经纬度点之间的直线距离,单位为米(m)。
  2. numberA1代表A点的经度,numberA2代表A点的纬度,numberB1代表B点的经度,numberB2代表B点的纬度。
  3.   备注:参数必须为数字,可为小数或者整数
复制代码

此时可通过 增强公式编辑器(仅支持9.0) 插件查看函数执行结果。点击实时计算
截图201806031757495153.png
可看到已计算完成两经纬度点之间的直线距离为 7061.7571 (单位为m)。

4、公式说明:
如希望其他用户使用时也可看到此函数的使用方法,可为此函数添加公式说明。
打开 ..\WebReport\WEB-INF\resources\ 下的 functions.xml 文件,找到getdistince函数,在Description标签内部添加公式说明即可(可直接添加以上函数解释,也可根据自己的理解重新编辑描述内容)。
截图201806031831508768.png

添加完成后重启设计器(或web服务器),设计器中打开选中此函数,在右边的公式说明中即可看到描述
截图201806031832197172.png

至此,此自定义函数在FR的公式环境中已可以随意使用。
编辑于 2018-6-3 18:39  

发表于 2018-6-3 20:35:27
来自手机
发表于 2018-6-3 20:38:38
来自手机
cherishdqy 发表于 2018-6-3 20:35

大神好
发表于 2018-6-3 22:30:06
一个帖子分两次发,难道是想评两个精华?
发表于 2018-6-3 22:30:20
已提名精华帖,待论坛运营委员会评分后可评为精华帖,帆软论坛精华帖奖励计划http://bbs.fanruan.com/thread-91079-1-1.html
发表于 2018-6-3 22:44:29
来自手机
flyingsnake 发表于 2018-6-3 22:30
一个帖子分两次发,难道是想评两个精华?

不不不,这本来就是两个独立的!
发表于 2021-11-16 17:19:45
牛皮呀
发表于 2023-10-25 09:28:55
good,好东西
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 2关注人数 6288浏览人数
最后回复于:2023-10-25 09:28

返回顶部 返回列表