文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1. 背景

目前对多个项目轨迹不准确的情况做了排查,发现导致轨迹偏移百分之七八十的原因反而是转换四参数不准确导致。所以,比起进行轨迹优化等,最根本需要解决的是四参数(通过三个及以上控制点对换算得出)不准确问题。那么如何判断四/七参数是否准确呢?针对这个问题我们给出一个通用方案。

2.原理说明

这里,我们从两个方面着手,一个是验证我们系统地图本身是否偏移,第二个是验证在地图准确的情况下四参数是否准确。

如果地图本身偏移,则应该先解决地图偏移问题后再进行第二步验证。

3.验证地图本身是否偏移

验证地图是否准确我们分为了两种情况,最简单的情况即是存在参考数据的情况,复杂些的情况则为没有参考数据的情况。

3.1有参考数据的情况

在使用地图页面上通过图层树勾选,将路灯或者行道树此类有明显排布规则的图层叠加显示在地图上,查看图层数据是否有偏移,如果没有则说明地图本身是准确的。

3.2无参考数据的情况

当无参考数据时,若地图底图是ArcGIS Server发布的,可以分别通过在arcmap中加载地图服务的地图和在系统地图中选择同名点来获取两对坐标,对其进行比较以验证系统地图是否有偏移。

其中,arcgis server发布的地图服务可以直接拖拽到arcmap的Table of Contents中出图,鼠标在地图上移动时,右下角的地图坐标会同步变化。

在系统地图上,可以借助工具栏上的定位工具,在地图上点选以获得对应坐标。

如果地图来源是天地图、互联网地图或其他第三方天地图的资源,则可以在网上搜索相应的添加到arcmap中的方法,或者用其他方法获取同名点位置正确的地图坐标。这里提供一个“在Arcmap中加载互联网地图资源的4种方法”的例子:http://www.cnblogs.com/skyofbitbit/p/3724479.html

4.地图精度准确的情况下验证四参数是否正确

其流程为:地图上获取一个本地坐标A1(X,Y),互联网地图上获取一个相同地点上的A2(LAT,LOG),将A1用四参数转换后成为A3(X,Y)。A1和A3对比精度即可。

4.1.在系统地图上获取参考控制点本地坐标

在系统地图上选择一个合适的位置,把地图放大到最大,选取一个当地平面坐标系的点,获取其平面坐标(x, y),建议选择位置明显便于定位的点,如道路交叉口。

利用系统地图的工具栏中定位按钮,然后在地图上点选,以获取其地图坐标:

如上图所示,在廊坊市人民政府附近的广阳道和光华路十字路口中央选取一个,其地图平面坐标为(472305.8106223327, 4378112.87180241)

4.2获取同名点的WGS84经纬度坐标

利用http://www.gpsspg.com/maps.htm 可以获取WGS84经纬度坐标:

找到与1中同名的位置,在地图上点选以获得其经纬度坐标(北纬N39°32′11.26″ 东经E116°40′45.40″),转换成小数形式为(116.67927777777778,39.53646111111111)

4.3四/七参数法转当地平面

利用已获取的WGS84转当地平面的正转参数(四参数或七参数),将其转换为当地平面,如廊坊现场的转换四参数为:

四参数:-134706.625179201#6463.79711914063#0.0111178719813301#0.999964601080147#0#116

将4.2中获取到的北纬N39°32′11.26″ 东经E116°40′45.40″)坐标通过该四参数转换后的当地平面坐标为(472310.28591671225,4378112.980450279)。

4.4转换结果精度评价

最后,把点选得到的当地平面坐标和用手机转换参数得到的当地平面坐标进行对比,以验证手机提供的WGS84转当地平面的转换参数是否正确:

地图点选坐标:(472305.8106223327, 4378112.87180241)

参数转换坐标:(472310.28591671225,4378112.980450279)

通过本例的结果对比,发现x方向偏差大概为4.5米,y方向偏差大概为0.1米,考虑到人为在地图上选取同名点的误差,廊坊现场提供的手机坐标转换参数还是比较准确的。

-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                      

轨迹系列5——验证轨迹GPS坐标转换为本地坐标的四/七参数是否准确的一种方案的更多相关文章

  1. 火星02坐标转换为WGS84坐标

    import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import jav ...

  2. unity---世界坐标和本地坐标的转换

    会受到缩放的影响 用的比较多的是 本地坐标转换为世界坐标,比如在自己周围释放物体 当物体发生旋转,方向会发生变化

  3. Cesium之球心坐标与本地坐标

    1球心坐标(ECEF)与本地坐标(NEU) 假如你来到一个陌生城市,你很可能需要问路.通常会告诉你向北走100米,右转,向东走100米,理解起来很直观.你给儿子买了一个地球仪,你从北京(39,115) ...

  4. canvas中window坐标转换为canvas坐标

    function getMousePos(canvas, evt) { var rect = canvas.getBoundingClientRect(); return { x: evt.clien ...

  5. GPS转换为百度坐标

    原文地址:http://www.cnblogs.com/zhaohuionly/archive/2013/06/18/3142623.html 最近在做一个关于手机定位的小应用,需求是这样的,用户通过 ...

  6. GPS坐标换算为百度坐标

    最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地 ...

  7. GPS坐标换算为百度坐标(转)

    最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地 ...

  8. 百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)和WGS-84坐标互转

    // 坐标转换 var coordTransform = (function () { // 一些常量 var PI = 3.1415926535897932384626; var X_PI = 3. ...

  9. 网络游戏开发-客户端4 关于Egret的本地坐标和舞台坐标

    因为最近公司事情比较多,所以没怎么更新博客. 不过咱们这个游戏还是在继续往下写. 今天晚上打算写斗地主的出牌动画,遇到一个问题,就是关于本地坐标和舞台坐标的计算问题 在Egret官网的解释是:x 和 ...

随机推荐

  1. Ansible配置免密登陆

    0x01:  把远程服务器的公钥来获取到本地 #ssh-keyscan ip1 ip2 ip3 ip4 >> /root/.ssh/known_hosts 完成后,/root/.ssh/k ...

  2. 【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~

       javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this   一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...

  3. [Java]LeetCode117. 填充同一层的兄弟节点 II | Populating Next Right Pointers in Each Node II

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  4. [Swift]LeetCode209. 长度最小的子数组 | Minimum Size Subarray Sum

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  5. [Swift]LeetCode281. 之字形迭代器 $ Zigzag Iterator

    Given two 1d vectors, implement an iterator to return their elements alternately. For example, given ...

  6. [SQL]LeetCode595. 大的国家 | Big Countries

    SQL架构 Create table If Not Exists World (name varchar(), continent varchar(), area int, population in ...

  7. [Swift]LeetCode879. 盈利计划 | Profitable Schemes

    There are G people in a gang, and a list of various crimes they could commit. The i-th crime generat ...

  8. Netty浅析

    Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步.本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 ...

  9. EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它

    回到目录 对于Dapper是一个轻量级的数据访问框架,而需要使用者去自己做SQL,它,只是一个数据访问者! 对些,Dapper推出了Contrib扩展包,它可以友好的让开发人员使用linq,而不需要写 ...

  10. 【Java基础】【07面向对象-构造方法&静态static】

    07.01_面向对象(构造方法Constructor概述和格式)(掌握) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b: ...