国内外地图差异分析

概念

1 火星坐标系统(GCJ02 / 国测局坐标)

是一种通过国家保密插件(也叫做加密插件或者加偏或者SM模组)加密后的坐标系统标准,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同,目前该坐标只在中国大陆、香港和澳门地区使用,其他地区不适用该系统标准。

2 世界大地测量系统(WGS84 / 国际标准坐标)

是一种用于地图学、大地测量学和导航(包括全球定位系统)的大地测量系统标准,WGS包含一套地球的标准经纬坐标系、一个用于计算原始海拔数据的参考椭球体,和一套用以定义海平面高度的引力等势面数据;最新版本为WGS 84(也称作WGS 1984、EPSG:4326),1984年定义、最后修订于2004年,之前的版本有WGS 72、WGS 66、WGS 60,目前全球大部分国家使用的是该系统标准。

3 百度坐标系统(BD09)

是百度自己在自家地图内所使用的一种坐标系统,是在国测局的坐标基础上,二次加密得到的坐标,该坐标只适用于百度系地图系统,与其他家系统不兼容。

4 其他坐标系统

与百度坐标系统类似,属于非主流的坐标系统,适用范围也只在自家系统内使用。

现状

目前国内内有多家地图服务提供商,其中有提供互联网地图服务资质的厂商主要有:高德软件有限公司、北京四维图新科技股份有限公司、北京搜狗信息服务有限公司、北京百度网讯科技有限公司、诺基亚联新互联网服务有限公司、北京新浪互联信息服务有限公司、深圳市凯立德计算机系统技术有限公司等,主流的地图软件主要数据来源实际上是高德、凯立德和四维图新这三家公司。

国外基本上每个国家都有一个本地的地图服务提供商,也有一些主流的互联网公司,像是Google,Apple,Nokia等通过购买和自行测绘来获得其他国家的地图数据,目前做的最好就是Google。
公司现有App集成的地图使用的是高德地图,但是高德地图面临一个国际化的问题,高德地图目前虽然在部分国家和地区已经能提供地图服务,但是该服务无法与主流的Google地图、OpenStreetMap相媲美,而且还存在着地图数据标注错误的问题,所以App现行的做法是两套地图,国内建议使用高德地图,国外建议使用Google地图,这样就能完美覆盖全球大部分的区域。

问题

根据产品定位和业务发展,App面临着地图需要提供国际化服务的问题,现有的接口根据App或者Web提供的度分秒坐标反转成WGS84经纬度坐标,App再从接口获取坐标后把WGS84坐标转换成国内的火星坐标,该坐标在国内范围内是适用的,但是在除去国内以外的地区,该套坐标数据就不再适用,因为国外大部分地区不使用火星坐标,App后续准备添加高德地图和Google地图切换功能,在切换到Google地图以后,直接使用WGS84在国外是能够显示正常,在国内如果不转换成火星坐标,会导致道路数据对不上,但Google卫星图显示正常。这是因为Google在国内没有地图测绘资质,使用的是高德地图的道路数据,所以在该套数据上需要使用火星坐标进行标记点位,但是Google的卫星图是从数字地球等第三方购买的, 该卫星图是使用WGS84来进行绘制的,所以在该套数据上需要使用WGS84坐标进行标记点位。

国内外地图差异分析

通过图示,可以看出卫星图与道路图存在偏移,卫星图往西北方向偏移了一定距离

建议

建议接口统一经纬度数据格式,在向后台传入经纬度坐标的时候标记下该坐标是WGS84还是GCJ02坐标,在App界面上抛弃度分秒的数据人工录入,直接使用定位或者地图选点的数据结果,防止用户个人录入数据导致出错的概率,对于卫星图和道路地图切换,需要重新进行点位的标记,区分国内外地图数据,在标记点位时,判断该点位是否位于国内,如果位于国内,需要使用GCJ02坐标进行标记,位于国外,需要使用WGS84进行标记,对于接口需要新增火星坐标字段,方便App直接使用,避免本地转换坐标带来的效率下降。

因此,对于涉及到地图数据的处理,建议对每一条经纬度数据需要标记该数据的坐标系统来源,以便于后台对于该数据的录入处理,对于返回的经纬度数据,接口也需要做相应的处理,支持对多种坐标的返回,通过请求入参,判断返回一种或者多种经纬度数据,使得对于经纬度坐标的数据处理更灵活。

标签:amap, google maps, 地图差异, 国外地图, 国内地图