关于火星坐标系统

[转载]关于火星坐标系统  


2011-09-08 23:11:57|  分类: 默认分类 |字号 订阅
偶然得知中国有一种火星坐标系统。其原理是这样的:保密局开发了一个系统,能将实际的坐标转换成虚拟的坐标。所有在中国销售的数字地图必须使用这个系统进行坐标转换之后方可上市。这是生产环节,这种电子地图被称为火星地图。在使用环节,GPS终端设备必须集成保密局提供的加密算法(集成工作由保密局完成),把从GPS卫星那里得到的坐标转换成虚拟坐标,然后再去火星地图上查找,这样就在火星坐标系上完成了地图的匹配。 
推出这个系统的名义是为了国家安全。然后呢,需要收取一定的费用。

那么,这个系统到底有没有可能改进国家安全呢?我不相信一旦和外国打起仗来,人家的导弹还要跟中国政府要坐标。这个系统实际上是形同虚设的。用来对付恐怖分子,好像也没用,人家不会用GPS导航设备去做破坏的。这么一排除,就只剩下钱了。

这个系统有没有可能破解呢?有人尝试过了,做一些反向数学变换,但是总是有一些误差。其实,办法是有的。

从数学抽象上讲,加密算法等于是一个函数,它把一个坐标变换成另外一个坐标。那么,我们应该注意到,这个变换必定是连续的,也就是原本在地球坐标中相邻的两个点经坐标变换后,在火星坐标系里仍然是相邻的。否则,火星坐标系将无法正常工作。明白了这点,剩下的就容易了。

既然保密局把算法集成到终端中,获取算法的代码就是很容易的事情。做些反向工程即可把算法确定下来。

然后,要建立地球坐标到火星坐标之间的一一对应关系,保存到数据库或者文件里。怎么建立呢?考虑到GPS的各项误差叠加起来大约是10米之内,我们可以把地球表面划分为10米见方的网格,然后把格点的三维坐标输入保密算法,得到对应的火星坐标。

当需要一个目标地点的地球坐标的时候,由于前述保密函数的连续性,我们就可以在数据库或者文件中找到跟这个地点相邻的四个点,再从前面计算好的结果中查找到这四个点的地球坐标,做少许调整,然后目标地点的地球坐标就确定了,仍然在GPS容许的误差范围内。

这里假设地球是完美、光滑的球体。实际中还需要做很多调整。这个方法有可能需要反复应用以逼近真实的数据。

最后再来看一点点技术问题。

中国的陆地面积是960万平方公里,可以划分出960亿个网格,因此有960亿个格点需要计算。假设加密算法每秒钟可以计算100万个坐标,那么一台单核计算机需要9.6万秒来完成全部计算,也就是一天多一点的时间。存储空间问题更大一些。假如每个坐标需要24个字节的存储空间(假设每个维度使用一个32位浮点数,计算前后一共6个数字需要保存),则至少需要2TB的存储空间。有了这些数据,就可以把火星坐标系上的中国陆地地图全部转换成地球坐标系。

当然,这些数据并不是都要计算出来不可。比如,如果你只要北京或者上海的地球坐标,就没有必要把全国地图都计算一遍。又比如,你只要某一个地点的地球坐标,则可以基于保密函数的连续性,使用二分搜索方法确定一个运算范围,运算结果保存在内存中即可。(二分搜索应该需要保证保密函数是单调的,好像不一定。但是,肯定可以使用某种办法确定一个很小的尝试范围)

原文地址:http://phoenixsh.wordpress.com/2010/02/03/%E5%85%B3%E4%BA%8E%E7%81%AB%E6%98%9F%E5%9D%90%E6%A0%87%E7%B3%BB%E7%BB%9F/
此外关于火星坐标系和WGS84坐标系之间的转换关系,可以参考下几篇博文:
http://www.keakon.net/2011/07/02/WGS84%E5%9D%90%E6%A0%87%E8%BD%AC%E7%81%AB%E6%98%9F%E5%9D%90%E6%A0%87%EF%BC%88iOS%E7%AF%87%EF%BC%89
http://www.unistrong.com/bbs/topic.aspx?topicid=2774
http://www.sosaw.com/forum43/thread-181200-1-1.html
http://www.oschina.net/question/61929_9986

你可能感兴趣的:(GIS发展趋势,加密)