高德百度坐标系转换自定义函数

走在数据追梦路上的瑟瑟发抖的萌新!
* 火星坐标系:中国国家测绘局制定的坐标系统,由WGS84加密后的坐标。高德地图、腾讯地图以及谷歌中国区地图使用的是GCJ-02坐标系
* BD09:百度坐标系,GCJ02加密后的坐标系。


实际的地图展示中,有时候会发现使用了gis图层的经纬度展示的点地图中,点位置会有所偏移,与在高德或百度地图等中看到的对应位置不一致,这种情况实际上是由于百度-高德坐标体系的不同导致的,此时需要先对坐标体系做转换后在使用数据进行地图展示。
导致点偏移的设置如下(当使用的gis图层坐标体系和数据中经纬度定位多绑定的经纬度体系不同时,会导致偏移情况的出现):
FineReport中gis图层设置:
截图201806040918451539.png
FineReport中数据设置的地理信息选择使用 经纬度定位的方式:
截图201806040920394819.png

使用步骤:

1、下载部署:
先下载帖子最后的 GPSConverterUtils.class 文件,在 ..\WebReport\WEB-INF\classes\com\fr\function 下新建 custom 目录,然后拷贝 GPSConverterUtils.class 文件到此目录下,重启设计器。(如需在服务器使用,则重启web服务器即可)。

2、配置:
打开设计器 服务器-函数管理器 ,添加函数,选择已放置到 ..\WebReport\WEB-INF\classes\com\fr\function\custom 目录下的 GPSConverterUtils.class 文件-确定-重命名为gpsconversion(名字可随意自定义,双击名称位置即可重命名)-确定 即可。

截图201806031808579234.png 截图201806031809561044.png

3、使用
在公式环境中,选择 自定义函数-gpsconversion(你命名的函数名称) ,双击添加即可。然后为此函数添加四个参数值。
截图201806031811431665.png
函数解释如下:
  1. gpsconversion(type,lon,lat):高德-百度体系经纬度互转。
  2. type代表要执行的转换类型,值为"gd_to_bd" 表示要把高德体系转为百度体系坐标,值为"bd_to_gd" 表示要把百度体系转为高德体系坐标。
  3. lon代表点的经度。
  4. lat代表点的纬度。
  5.   备注:type参数必须为字符串,只能为"gd_to_bd"或"bd_to_gd",为其他内容时,会返回提示信息"坐标体系转换类型选择错误"。lon参数和lat参数必须为数字,可为小数或者整数。
复制代码

此时可通过
增强公式编辑器(仅支持9.0) 插件查看函数执行结果。点击实时计算
截图201806031812076246.png

可看到已转换完成的百度体系值为 119.26091542232982,26.08578157175887

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

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

函数默认返回的是保留14位小数点精度的值用逗号分割组成的字符串,如果需要分拆经纬度单独使用,可参考
  1. TODOUBLE(INDEXOFARRAY(split(gpsconversion("gd_to_bd",119.254356,26.080030),","),1))
复制代码
使用split函数以,号分割字符串行成数组后,以INDEXOFARRAY函数获取1位元素,可获取到经度值,2位元素可获取到纬度值,具体的函数解释请参考公式说明!


根据不同需求,可使用round函数保留指定位数。效果如图:
截图201806031902366611.png

至此,此自定义函数在FR的公式环境中已可以随意使用。

编辑于 2018-6-3 19:04  



编辑于 2018-6-4 09:23  
参与人数 +1 F豆 +10 理由
格调 + 10 太棒了,给你32个赞,么么哒

查看全部评分

发表于 2023-4-10 11:33:51
突然发现。。。社区又给我把附件丢了。。。。
发表于 2018-6-3 19:32:50
来自手机
腻害腻害
发表于 2018-6-3 20:30:28
来自手机
不想洗头 发表于 2018-6-3 19:32
腻害腻害

媳妇
发表于 2018-6-3 22:26:59
星星咋这厉害呢?
发表于 2018-6-3 22:28:05
送你上位到精华. 已提名精华帖,待论坛运营委员会评分后可评为精华帖,帆软论坛精华帖奖励计划http://bbs.fanruan.com/thread-91079-1-1.html
发表于 2018-6-3 22:34:55
666,这个豆价怎么有零有整的
发表于 2018-6-3 22:43:49
来自手机
macro_hard 发表于 2018-6-3 22:34
666,这个豆价怎么有零有整的

和我家妹子3.24日在一起的
发表于 2018-6-4 08:40:10
应用场景可以再描述的详细一点,有些用户可能都不清楚坐标系是什么
发表于 2018-6-4 09:36:31
研读学习
发表于 2018-6-4 11:24:22
发表于 2018-6-4 13:50:37
发表于 2019-4-8 08:32:14
发表于 2019-4-11 17:41:43
厉害了我的哥
发表于 2019-6-3 15:30:38
厉害惹
发表于 2019-9-29 14:31:35
豆子不够
发表于 2022-4-19 21:13:10
太棒了
发表于 2023-4-6 14:31:51
111111111111111111
发表于 2024-10-24 15:33:03
附件呢???
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

30回帖数 3关注人数 12220浏览人数
最后回复于:2024-10-24 15:33

返回顶部 返回列表