要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的。
要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:
如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。
对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。
其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟:
矢量模型:同多X,Y(或者X,Y,Z)坐标,把自然界的地物通过点,线,面的方式进行表达
栅格模型(瓦片模型):用方格来模拟实体
目前在互联网公开服务中,或者绝大多数手机APP里看到的,都是基于栅格(瓦片)模型的地图服务,比如大家看到的百度地图或者谷歌地图,其实对于某一块地方的描述,都是通过10多层乃是20多层不同分辨率的图片所组成,当用户进行缩放时,根据缩放的级数,选择不同分辨率的瓦片图拼接成一幅完整的地图(由于一般公开服务,瓦片图都是从服务器上下载的,当网速慢的时候,用户其实能够亲眼看到这种不同分辨率图片的切换和拼接的过程)
对于矢量模型的电子地图来说,由于所有的数据以矢量的方式存放管理,事实上图层是一个比较淡薄的概念,因为任何地图元素和数据都可以根据需要自由分类组成,或者划分成不同的图层。各种图层之间关系可以很复杂,例如可以将所有的道路数据做成一个图层,也可以将主干道做成一个图层,支路做成另外一个图层。图层中数据归类和组合比较自由。
而对于栅格模型(瓦片图)来看,图层的概念就很重要的,由于图层是生成制作出来,每个图层内包含的元素相对是固化的,因此要引入一个底图的概念。也就是说,这是一个包含了最基本,最常用的地图数据元素的图层,例如:道路,河流,桥梁,绿地,甚至有些底图会包含建筑物或者其他地物的轮廓。在底图的基础上,可以叠加各种我们需要的图层,以满足应用的需要,例如:道路堵车状况的图层,卫星图,POI图层等等。
底图通常是通过选取必要地图矢量数据项,然后通过地图美工的工作,设定颜色,字体,显示方式,显示规则等等,然后渲染得到了(通常会渲染出一整套不同分辨率的瓦片地图)
当然,即便在瓦片图的服务中,在瓦片底图之上,依然能够覆盖一些简单的矢量图层,例如道路走向(导航和线路规划必用),POI点图层(找个饭馆加油站之类的)。只不过瓦片引擎无法对所有地图数据构建在同一个空间数据引擎之中,比较难以进行复杂的地图分析和地图处理。
那么既然瓦片图引擎有那么多的限制和缺陷,为什么不都直接使用矢量引擎呢?因为瓦片图引擎有着重大的优势:
1. 能够负载起大规模并发用户,矢量引擎要耗费大量的服务器运算资源(因为有完整的空间数据引擎),哪怕只是几十上百的并发用户,都需要极其夸张的服务器运算能力了。矢量引擎是无法满足公众互联网服务的要求的。
2. 由于地图美工介入的渲染工作,瓦片图可以做得非常好看漂亮和易读,比较适合普通用户的浏览
附:一张矢量地图截图:
其实主要就是为了引入图层和底图的概念,以方便说明下面的地图数据分类
为了说明数据的来源和采集渠道,采集方法,将地图数据分为以下几个类型:
1. 底图数据: 其实就是地图中最基本的地物外形数据及一定的相关附加信息(例如道路名,河流名等)。事实上随着遥感和航拍卫拍技术的进步,这部分数据依赖实地采集的比例已经越来越小,商业地图数据商,尤其以高德为代表,处于成本收益考量,基本已经很少采用实地采集的方式了。这部分的数据主要来源于3种:
官方地图:严格来说,这不能说是一种单独的渠道,因为官方地图的数据本身,也是来源于下面的两种渠道,但是官方地图一般来源于政府相关部门的权威测绘和发布,因此也单算成一种渠道。当然,需要说明的是,地图厂商能从国家权威部门拿到或者买到的地图,要比我们日常在街上商店里买到的地图要精细丰富很多,当然,很多时候也是用电子格式提供的。
当然,无论任何国家,真正高精度的地图(例如1:200比例或更高)是受限制不会对外公布的。(相对应给大家参照的是,我国规定互联网上可以公开发布的地图,最高精度是1:10000)
实地外采:说白就是测绘人员利用专业的仪器仪表,在实地环境中测绘所得到的。这样的采集方法耗时耗人都非常厉害,一则成本高,二则周期长,三则是采环境要求高(去喜马拉雅山去测测能弄吐血了),而且未必能够完全跟得上中国现在的城市变化。但是优点在于精度高,置信度,准确度非常高。这是国家测绘部门主要采用的手段,对于像北京市这样一个城市来说,一般几年才会完整重新测绘一轮。一般对于大多数商用测绘时,只是用在少数局部需要时,重点测绘才用得到。
这个大家马路上应该也偶尔能见到
当然,在精度和准确度要求没有那么高的地方,实地采集也可以使用一些成本更低更便捷的工具,而不是专业测绘设备。例如用携带高精度GPS或其他定位的手持智能设备步行以绘制轮廓等。
航片卫片制作:就是通过自己拍摄或者购买的高精度航空照片或者卫星照片或者遥感照片,在此作为底片的基础上进行人为的矢量标注和勾勒,从而形成自己的矢量数据。现在的航片或者遥感片的精度已经可以很高了,一般来说做到精度在0.05米的程度已经很容易。高德自己的航片据说已经可以做到0.03米的精度,对于商用地图数据来说,通常已经够用了。即便作为国家权威测绘,在大量荒郊野岭的测绘,也主要依赖于这种手段。
目前常用的航拍或者卫拍手段包括机载数码摄像,机载遥感以及三维激光扫描(主要用于3D地图数据采集)
0.05米精度航片
卫片路网标注
航片/卫片标注和勾勒,前面是在底片上的操作,后面是勾勒标注后得到的矢量图
数据加工制作示意图(来源于高德某公开资料)
从这部分数据来说,百度是没有自己的采集生产能力的,也没有执照(没有测绘资质)。百度的这一块数据主要是向四维图新买的。
国内这一块的数据,主要有两家供应商,就是高德和四维图新。
四维图新和国家测绘单位的关系非比寻常,其数据依赖国家测绘单位供给的占大头(当然也有互相供给的)。
高德也有一部分数据来源于国家测绘单位的供给,但是高德自己的航拍制作的能力还是不错的(还承担过一些国家测绘机关的测绘任务),相对来说,依赖国家测绘单位数据的比例要低一些。
总的来说,这部分数据的采集生产,在中国需要国家认定的资质,有资质的除了国家测绘机关以外,商业机构本来就不太多,而真正在这个数据供给市场上活跃的,现在主要就是高德和四维图新这两家。
其他无论是谷歌地图也好,苹果地图也好,这部分的数据,基本上都是从上述两家购买的。
2. POI数据:严格来说属于矢量数据,不过是最简单的矢量数据,换句话来说就是坐标点标注数据。也是电子地图上最常用的数据图层。
我们日常在电子地图上所使用的数据都是POI数据(就是地图上常见的那种标个气球的点)。
POI数据只是信息关联坐标点的数据,不涉及到线和面,是最简单的矢量数据,用于简单的地点标注而不需要相应地物轮廓的需求。
POI数据的内容五花八门,一般POI数据的供应商提供的POI数据都是日常常用的场所数据,例如饭店,商店,加油站,银行等日常常用设施。
当然,在一些特殊的地图应用领域,也可以委托这些数据供应商或者自行去专门采集特殊用途的POI数据,例如井盖,消防栓等
税务GIS系统标注企业及纳税信息
值得指出的是,POI数据的编辑更新简单,同时也经常用于动态数据标注,最经典的莫过于车辆定位标注。
POI数据的采集和生产来源五花八门,不能尽述,总的来说,主要有以下几种:
a)通过整合GPS的摄像机,步行或者车行,进行扫街持续拍摄,回去以后,再根据拍摄结果手工进行输入和标注,这种方式适合于大规模的进行采集标注,效率高,成本低,车行居多,尤其适合沿街的店面和场所的采集和标注,是目前数据采集供应商的主要采集手段之一
b)通过专职或者兼职人员,使用手持含GPS的智能设备(比如智能手机),进行拍摄(主要是为了取证),输入,提交,进行采集。这种采集方式,大多用于上述方法a的补充。在一些车辆不能达到的地方,或者商户设施变动频繁的某些区域使用
c)地址反向编译:通过门牌地址号码,以及矢量地图中的道路数据,运用算法进行定位标注。这种标注精度相对最低,准确性也不高,但是成本非常低。用在不需要特别高精度,成本控制也比较严的采集领域。大家在地图服务搜索框中输入地址门牌号,可以直接出现标注点,用的就是这个技术。
d)互联网或者企业获取:直接从一些专业类服务网站上抓取或者购买(例如大众点评,携程),或者直接从大家在其公开的地图服务上的标注中进行筛选和获取。这就是google,百度,高德自己免费向社会开放其地图服务所能够获得的利益。尤其对于开放API免费企业客户的使用,这种获取是很有价值的。
国内POI数据的供应商没有太多资质限制,相对底图数据供应商,要多很多,例如图吧等都是POI数据供应商,当然四维图新和高德也提供POI数据,每个POI数据供应商,都有其自己的分类方式,数据定义等内容。很多时候,大家也互相买来买去,互补有无。
百度地图这方面的数据,主要来自四维图新和道道通,当然也有其他来源,甚至有少量的自产数据。
高德地图这方面的数据以自产为主,辅以向一些专业服务商购买(口碑网,大众点评,携程,乐途,搜房)