不同坐标系经纬度相互转换
Tarantino 人气:0公司需要解析出任意采集到的地址在百度坐标系下的经纬度,原来调用百度地图地理编码API服务即可,但是一些国外的地址在百度地图下得到的经纬度误差很大,因此,
我使用到了google地图api,但是随之产生的问题是google地图api得到的坐标基于wgs84坐标系,所以剩下的问题就是如何将基于wgs84坐标系的经纬度转为百度坐标系
经纬度。这里发现一个不错的网站,直接提供坐标转换服务。
https://artoria2e5.github.io/PRCoords/demo。
但是待转换的数据量较大,如果每次手动转化太慢太麻烦,如果爬虫请求也比较慢,而且若万一网站察觉到关闭服务也是不好。
其实这些坐标系无非是采用了不同的模型或测量参数,那么这个网站能给出结果无非是js执行了一些不同坐标系转换计算工作,那么直接学习他的计算过程我就能模仿一份了。
查看调用过程很简单,使用chrom浏览器调试工具即可。流程如下:
一,定位到"scre that!" 按钮对应的click事件
二,进入该js代码,发现调用了fill_output函数
三,使用chrom搜索工具搜索fill_output关键词,找到代码位置
四,找到关键部分,打上断点
五,在线调试,找到关键js模块,PRCoords.js模块
接下来,我们只要用自己擅长的语言替换js代码就能实现一个不同坐标系经纬度转换工作了。
我使用的是go语言完成的,这种坐标系转换很适合做web API,因此我提供了一个web api服务,目前还没有实际部署,代码在我github上:https://github.com/Tarantiner/coord
运行很简单,使用go编译运行即可,效果如图
加载全部内容