gpx文件是适用于GPS位置座标信息交换格式的文本,最近的工作涉及到地理位置信息与图片信息的结合,因此接触到了gpx文件和GeoSetter软件,后者是一款功能强大的图片GPS信息编辑软件。很多人利用它把gpx文件中记录的位置信息写入到没有定位信息的照片中去,从而使得照片信息更回丰富,当拍摄者事后与显示拍摄点地图同时观赏照片时能够引起更多的内心共鸣。笔者这次想给几张试验图片加上位置的信息,通过加载位置信息的成功与否,验证所建立的gpx文件是否标准。

为了简单点,刚开始建立的gpx文件记录的都是航点(waypoint),用xml文件的编辑器和gpx文件的阅读器都没报错,在地图上也能正确地显示所记录的航点,如下图:

但是,当想用自建的gpx文件把位置信息写入照片的exif中的时候就遇到问题了,GeoSetter软件不能识别自建gpx文件中的位置信息,在GeoSetter中的设置如下:

在上面的设置下点“确认”后出现的提示:

从提示信息看,是所选的gpx文件中不含有GPS信息,这个就很难理解了,明明在另一个gpx文件阅读器中还能在地图上加载,到这里却变得没有GPS信息了。试了很多种办法,比如改变标签的顺序、增减可选节点(node)的数量包括增加踪迹点(trkpt)记录、改变数据的单位如把经纬度原用小数表达改为度、分、秒的方式、更换GeoSeter的版本,所有的措施都无济于事。为了与标准gpx文件的格式进行比较,专门安装了手机应用“GPS工具箱”,它里面集成了专门路径生成模块,使用其生成了gpx文件:

不过,出人意料的是我认为这个标准的gpx文件GeoSetter软件仍然不能识别其中包含的位置信息,提示的错误与我自建的gpx文件是一样的。如此看来gpx文件中的错误显然非常隐晦,且不易查觉,但影响很大,在严格按照gpx标准开发的应用上有可能会打不开。我还是要找一个能用的gpx文件进行比较,这样才能找到错误加以解决。终于在一个户外论坛上找到了一个武汉-荆州的gpx踪迹文件:

GeoSetter能够正确的识别这个gpx文件中的位置信息。在仔细的比较后我发现自建的gpx和gps工具箱生成的gpx文件与户外的gpx文件存在一处共同的差别,那就是时间戳的格式,我们采用的是yyyy-MM-dd HH:mm:ss格式,而户外的gpx文件采用的是yyyy-MM-dd’T’HH:mm:ss.SSS’Z’格式,再查gpx标准的网站,原来人家已经有明确的规定要采用户外的那种格式啦:

于是,我在android studio中把相关的语句进行了修改:

修改后生成的gpx文件再用GeoSetter加载时就不说文件不包括位置信息了:

加载了修改了时间戳后gpx文件,照片上已经能看到位置信息了:

虽然已经能够正确的识别gpx文件中的位置信息,但最后把信息写到照片中还是有小插曲:下载的GepSetter软件中没有包括exiftool这个工具,信息写不进去,后来找到了完整的GeoSetter软件重新安装后就可以啦,这是写了位置信息后的照片exif信息:

这说明自建的gpx文件的格式和内容都符合标准,能够起到信息交换了作用了。这个过程也说明了如果要进行信息的交换和分享,首先要理解标准,然后严格的执行标准,在共同的标准下才可能实现有意义的交换和共享。

标准gpx文件的时间格式相关推荐

  1. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  2. linux文件的时间格式

    背景: 今天观察数据库文件的时候发现: ls -la *.ibd -rw-rw---- 1 mysql dba 98304 Sep 25 2012 a.ibd -rw-rw---- 1 mysql d ...

  3. 后端node-xlsx读取excel文件后时间格式的转换 - 利用xlsx自带方法

    在node端中使用node-xlsx读取带有日期数据的excel文件文件时,发现日期数据全部变成了数字,手动验证发现是距离1900年1月1日的天数,网上很多解决方案为进行天数转换,但是要额外增加一个函 ...

  4. 在Delphi中获取和修改文件的时间

    Delphi中提供了很完备的Windows API函数的调用接口,可以方便的进行高级Windows编程.利用Delphi中的FindFirst函数可以得到一个文件的属性记录,该记录中的FindData ...

  5. 【Python文本处理】基于运动路线记录GPX文件解析,心率、速度、时间、功率、踏频、海拔等参数的生成和更改,以及GPX循环拼接

    [Python文本处理]基于运动路线记录GPX文件解析,心率.速度.时间.功率.踏频.海拔等参数的生成和更改,以及GPX循环拼接 GPX文件本身其实就是坐标.海拔.时间.心率等综合性的xml文件 如图 ...

  6. 【Python文本处理】基于GPX文件的心率、速度、时间等参数更改

    [Python文本处理]基于GPX文件的心率.速度.时间等参数更改 GPX文件本身其实就是坐标.海拔.时间.心率等综合性的xml文件 如图: 海拔:ele 时间:time 心率:heartrate 在 ...

  7. 【Python文本处理】基于运动路线记录GPX文件的基础运动速度求解,并转为SRT字幕格式(不需要安装三方库)

    [Python文本处理]基于运动路线记录GPX文件的基础运动速度求解,并转为SRT字幕格式(不需要安装三方库) 解析 GPX文件格式 GPX文件本身其实就是坐标.海拔.时间.心率等综合性的xml文件 ...

  8. QT内存标准格式转换(还有时间格式,传输速度)

    1.内存,时间格式,传输速度的标准格式输出 我们经常会遇到byte内存转为KB,MB,GB:还有秒数转为时分秒这种格式:今天就来学习和记录一下: 头文件 transition.h QString tr ...

  9. Object-C 如何把一个时间戳转换为一个标准的时间格式?

    2019独角兽企业重金招聘Python工程师标准>>> 这个原理是非常简单的,首先将得到的时间戳字段转换为浮点类型的数,计算出这个时间距离1970年的NSDate,然后设置显示的时间 ...

  10. linux修改文件创建的时间格式,Linux下修改文件创建时间(修改文件更改时间)

    Linux下修改文件创建时间(修改文件更改时间) 进到要改的文件目录里 find . -name "*" -exec touch '{}' \; 注:最后一定要加分号,{}外一定要 ...

最新文章

  1. matlab图形用户界面设计简介
  2. Euro Truck Simulator 2欧洲卡车模拟2用VR玩
  3. 【机器学习基础】GBDT--梯度提升树实例分析完全解读
  4. 交通预测论文笔记《Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting》
  5. MFC中的GDI绘图
  6. xampp for Ubuntu安装.run文件
  7. eclipse项目导出错误处理
  8. Vh和Vw的简介和使用
  9. 如何设置PP视频允许PPAP驻留
  10. iOS网络开发(5)请求的缓存
  11. sql 上亿 查询_在文件上使用 SQL 查询的示例
  12. 3D缺陷检测---小论文
  13. 四个免费好用的临时邮箱
  14. 小米浏览器导出html,一招教你导出小米uc浏览器缓存视频
  15. 领域驱动设计系列贫血模型和充血模型
  16. Kubernetes的Startup, Liveness, Readiness深入探索
  17. hdwiki 编码规范
  18. 一年之计在于春,一日之计在于晨
  19. 阿里云域名备案问题 注销主体步骤
  20. 【JavaScript】节点的常用属性和方法

热门文章

  1. eplan图纸怎么发给别人_如何保护你的EPLAN图纸
  2. sql字符串拼接,转义
  3. Unity资源加载以及释放
  4. 计算机并口优点,并口光驱优缺点有哪些 并口光驱如何转串口
  5. 编程获取中国股市行业分类并作图--使用python、tushare、pyecharts实现
  6. linux下加载so文件
  7. android7.1.2 xposed,安卓7.1 xposed框架
  8. installanywhere打包过程(openproj版)
  9. android如何查看手机中的db文件,查看sqlite数据库的表结构
  10. db2 jdbc驱动参数_db2的jdbc驱动安装及例子