关于iPhone和iPad内置地图应用和GPS的是是非非
听到了太多关于iPhone和iPad中内置 地图 应用 和 GPS 的争论,是时候用实验的办法得出一个结论了。下面就是我的实验过程,因为实验还在进行中,所以会随时更新内容。
实验之前,我们先确定几个信息和原则:1,本实验,仅针对最新版iOS firmware和最新发售的iPhone 4和iPad硬件,其他版本的对比测试将放在之后进行2,全球发售的iPhone和iPad,仅中国大陆版本使用了ditu.google.cn的图资,其他版本均使用maps.google.com的图资,这一点可以对比地图上的信息得出3,iPhone 4 和 3G+WIFI版 iPad 都有GPS接收硬件4,帖子中将中国大陆发售的iPhone 4简称为中国版,而除中国大陆以外发售的iPhone 4 简称为全球版
实验1:确定各种版本的地图图资和卫星图是否偏移以Google Earth上人民英雄纪念碑顶端为准,取得GPS坐标39°54’11.76″N, 116°23’29.08″E复制代码将这个坐标输入到各个版本的地图中定位,来判断图资是否做了人为偏移先看看google maps卫星图,准确地图,偏移
再来看Bing(没找到卫星图)地图,偏移
还有yahoo maps卫星图,准确地图,偏移
谷歌地图卫星图,偏移地图,偏移
可以明确的看到,所有的地图图资都是经过人为偏移的,因为地图图资都是从我们的测绘部门拿到的,但是,几乎所有的卫星地图都是准确的,因为来源不是我们的测绘部门。但是有一个例外,那就是谷歌地图(ditu.google.cn),他的卫星图和地图是重合的,但是都经过了偏移另外,国内其他地图服务我没有找到直接输入坐标定位的方法,所以只能从实验中去除
再让我们看一下港版的iPhone4卫星图,准确地图,偏移
中国版的iPhone4暂时没有拿到,但是根据同学的反馈,应该都是偏移的,这也符合使用了谷歌地图图资的结论
实验结论1:中国版iPhone 4使用谷歌地图的结果是:可以得到地图和卫星图重合的便利,但是不管是卫星图还是地图都和实际坐标不符,也就是说,都是经过人为偏移的。而全球版iPhone 4使用的Google maps可以保证卫星图和实际坐标相符,但是地图是经过人为偏移的
敬请期待,实验2:GPS定位的偏移
这个实验正在进行,需要大量数据的对比,我们先来做一些实验假设
首先还是实验前提:1,仅讨论使用GPS硬件实现的定位,对于基站定位和wifi定位不考虑2,全球发售的iOS设备的GPS定位API给出的坐标是未做人为偏移的3,这里所说的GPS定位偏移,并不是定位精度的问题,而是在有中国特色的使用环境下,GPS定位出的坐标和app实际使用的坐标是否一致,并且在日常环境中是否可用的问题4,实验1得出的结论将作为实验2的前提之一
然后我们来做实验假设
关于全球版iPhone 4:假设1:Maps app中对于全国大部分地区的卫星地图定位都是准确的,除了北京。因为Maps app对于北京地区的GPS坐标做了和地图图资相同的算法偏移
如何验证:地点北京市内,在GPS可用的状态下打开compass,看到下面的坐标了吗?记下来。然后到Maps里面给自己定个位,你会发现这个位置很准确,然后将当前位置信息发mail到邮箱,然后在电脑上点击位置链接,会打开maps.google.com网站,点击那个定位标志,可以看到GPS坐标。两个坐标对比,肯定是不一致的。实验1中已经证明了,maps.google.com的地图是经过偏移的,所以compass的坐标是准确的,而Maps中的坐标是经过计算偏移的
其他地方呢?同样的实验方法,应该会得出两个坐标基本一致的结果,这个需要同学们自己验证一下所在地的情况了
假设2:国内的导航app们使用了经过偏移的地图,同时将API传递进来的GPS坐标做了同算法偏移
为什么:首先,导航软件的开发者得到的一定是经过算法偏移的地图图资,如果直接使用API传递的GPS坐标进行导航,结果一定是“车在屋顶行”,所以国内的导航app都将接收到的GPS坐标也做了偏移,于是,定位和导航就“准”了。国内版的车载导航也是一样的道理。
假设3:国外的定位相关的app(包括自带的compass和camera)直接使用了API传递进来的GPS坐标,在卫星地图上定位准确
如何验证:从假设1的验证过程就可以知道,compass的GPS坐标是准确的,那么camera呢?在一个符合GPS使用条件的地方拍一张照片,然后在电脑上读取exif中GPS的坐标,定位到Google maps的卫星地图上,一定是准确的。
关于中国版iPhone 4:假设4:中国版iPhone 4 的 Maps app对于卫星地图做了和地图图资相同的算法偏移,并对接收到的GPS坐标也做了同算法偏移
如何验证:方法同假设1,不同的是可以在国内任何地方实验。
假设5:中国版的iPhone4的定位API给出的坐标是准确的
如何验证:使用compass得到的坐标定位到google maps的卫星地图上,位置应该是准确的。
实验2初步的结论:1,iPhone 4 的GPS坐标是准确的2,Maps在中国版和全球版的iPhone 4 上对GPS坐标的处理算法不同,中国版是只要在中国境内就做算法偏移,全球版是只有在北京市才做算法偏移3,国外app的GPS坐标直接从系统API获取,也是准确的4,国内部分app对GPS坐标做了算法偏移,以制造定位准确的假象
简单来说,对于使用Maps应用中国版iPhone4的地图和卫星图重合,可用GPS导航,无法用一个真实GPS坐标来定位地点全球版iPhone4的地图和卫星图不重合,如果使用卫星图可以GPS导航,可以用一个真实GPS坐标在卫星图上定位地点如果在北京,使用地图可以GPS导航,可以用一个真实GPS坐标在卫星图上定位地点
对于其他应用(不含高德等国内导航软件)不分中国版和全球版,定位到卫星图上都是准确的,定位到地图上都是偏移的
对于高德等国内导航软件开发者将GPS坐标偏移后映射到已经偏移的地图上,所以可以正常使用
最后,说一下到底谁偏移的问题1,所有的iPhone 4 GPS坐标都不偏移2,中国版iPhone 4 的Maps应用,地图,卫星图,坐标都偏移3,全球版iPhone 4 的Maps应用,地图偏移,卫星图和坐标都不偏移,特例是在北京,地图和坐标都是偏移的,卫星图不偏移4,国内导航app包括国内的车载导航,地图和坐标都是偏移的,只不过偏移算法相同,所以看起来是准的
以上内容转自麦克一班(elesson)