对.gpx文件进行地图坐标系转换

引子

关于地图坐标系,可以参考这篇文章,下表列出了几种常用的坐标系:

坐标系解释使用地图
WGS84地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,最基础的坐标,谷歌地图在非中国地区使用的坐标系GPS/谷歌地图卫星
GCJ02火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。并要求在中国使用的地图产品使用的都必须是加密后的坐标,而这套WGS84加密后的坐标就是gcj02。腾讯(搜搜)地图,阿里云地图,高德地图,谷歌国内地图
BD09百度坐标系,百度在GCJ02的基础上进行了二次加密,官方解释是为了进一步保护用户隐私百度地图
小众坐标系类似于百度地图,在GCJ02基础上使用自己的加密算法进行二次加密的坐标系搜狗地图、图吧地图 等

国内地图产品导出的.gpx文件一般使用的是非WGS84坐标系,所以如果想要将该.gpx文件导入到只支持WGS84坐标系的设备使用时,坐标将发生偏移,因此需要对.gpx文件进行坐标系转换。
在Github和其它搜索引擎上并没有搜到将.gpx文件进行坐标转换的资料,但是将.csv文件或直接对坐标点进行转换的代码有很多。所以决定对代码进行修改使其支持直接对.gpx文件转换。

思路

.gpx文件其实可以看成是一种xml文件,其格式如下:
在这里插入图片描述可见,gpx文件其实就是将每一个坐标点的经纬度、高度和时间记录下来,以此来生成轨迹。
所以,我们需要做的就是将.gpx文件中的坐标点提取到,并对该坐标点进行坐标系转换,之后再将转换后的坐标写入新文件内,从而实现.gpx文件的坐标转换。

代码

有了思路,代码就比较好办了,我是根据这里的代码进行了修改,并已经提交给原作者,目前原作者还没有merge代码,可以先使用我仓库里的代码。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值