地址反向编译:这种方式通过门牌地址号码,运用算法进行定位标注。这种方法的好处是成本非常低,但是精度和准确度都不高。
从互联网或者企业获取:这些POI直接从专业网站抓取或者购买(比如大众点评,携程)。一些企业也可以利用这些地图开放的API服务为自己互联网产品服务。
POI数据不需要很多资质限制,所以提供POI数据的服务生比底层数据供应商多很多。比如图吧就是主要的POI数据供应商,很多时候大家互相购买,补充自己的地图。
3. 其他数据:
其他常见数据图层包括交通状况图层、卫星图层、三维图层、街景图。交通状况图主要依赖于安装在出租车上的GPS采集实时数据,或者通过激光测速仪、摄像头、雷达测速等专业设备采集交通路况信息。三维图层主要依靠激光扫描和手工建模。街景则依赖实地拍摄。
数据处理
在我们获得这些数据后,需要对这些数据需要进行模型化处理。目前有两种建模方式:矢量模型和栅格模型。
我们目前在互联网公开服务中,或者绝大多数手机App里看到的,都是基于栅格(瓦片)模型的地图服务。其实对于某一块地方的描述,都是通过10多层甚至20多层不同分辨率的图片所组成,当用户进行缩放时,根据缩放的级数,选择不同分辨率的瓦片图拼接成一幅完整的地图(由于一般公开服务,瓦片图都是从服务器上下载的,当网速慢的时候,用户其实能够亲眼看到这种不同分辨率图片的切换和拼接的过程)
对于矢量模型的电子地图来说,所有的数据以矢量的方式存放管理,任何地图元素和数据都可以根据需要自由分类组成,或者划分成不同的图层。各种图层之间关系可以很复杂,例如可以将所有的道路数据做成一个图层,也可以将主干道做成一个图层,支路做成另外一个图层。图层中数据归类和组合比较自由。
而对于栅格模型(瓦片图)来看,图层的概念就很重要的,由于图层是生成制作出来,每个图层内包含的元素相对是固化的,因此要引入一个底图的概念。也就是说,这是一个包含了最基本,最常用的地图数据元素的图层,例如:道路,河流,桥梁,绿地,甚至有些底图会包含建筑物或者其他地物的轮廓。在底图的基础上,可以叠加各种我们需要的图层,以满足应用的需要,例如:道路堵车状况的图层,卫星图,POI图层等等。
底图通常是通过选取必要地图矢量数据项,然后通过地图美工的工作,设定颜色,字体,显示方式,显示规则等等,然后渲染得到的(通常会渲染出一整套不同分辨率的瓦片地图)。
当然,即便在瓦片图的服务中,在瓦片底图之上,依然能够覆盖一些简单的矢量图层,例如道路走向(导航和线路规划必用),POI点图层(找个饭馆加油站之类的)。只不过瓦片引擎无法对所有地图数据构建在同一个空间数据引擎之中,比较难以进行复杂的地图分析和地图处理。
那么既然瓦片图引擎有那么多的限制和缺陷,为什么不都直接使用矢量引擎呢?因为瓦片图引擎有着重大的优势:
1. 能够负载起大规模并发用户,矢量引擎要耗费大量的服务器运算资源(因为有完整的空间数据引擎),哪怕只是几十上百的并发用户,都需要极其夸张的服务器运算能力了。矢量引擎是无法满足公众互联网服务的要求的。
2. 由于地图美工介入的渲染工作,瓦片图可以做得非常好看漂亮和易读,比较适合普通用户的浏览。
□编后
对地图数据进行加工后,整个地图制作就基本成型了。地图厂商需要将做好的地图进行实地测试,保证地图的完整性和可靠性。最后这些原始地图数据在相关部门做保密技术处理和审查。通过审查后,电子地图就可以公开的在网上发布或者销售。至此,整个地图制作过程基本结束。一般来说,地图厂家还会进行地图数据的更新,更新的频率每家各不相同。只有地图数据更新,才能保证用户在使用地图时候不会出错。
以上便是对整个地图制作过程做了一个简单的描述,希望大家能获得一些地图制作相关的知识。
(本文转自Geekcar用户韩杨,及知乎用户天光的知乎问答内容)