随着gis行业的不断发展,加上电子地图的日益普及,使得如今市场上与电子地图相关的产品越来越多,从事电子地图开发的企业也如雨后春笋般纷纷出现,既有像百度、谷歌、超图等这些行业巨头,也有像上海为卓、广州哈图、深圳玖图等中小型企业。但不管是什么类型的电子地图产品,也不管是哪家公司开发,都离不开支撑地图信息展示的数据和地图的底图。那这些数据是从哪里来的呢?根据丰富的项目开发经验和对行业的了解,这里来给大家说一下。

要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:

如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。

目前在互联网公开服务中,或者绝大多数手机APP里看到的,都是基于栅格(瓦片)模型的地图服务,并通过10多层乃是20多层不同分辨率的图片所组成。当用户进行缩放时,根据缩放的级数,选择不同分辨率的瓦片图拼接成一幅完整的地图(当网速慢的时候,用户其实能够亲眼看到这种不同分辨率图片的切换和拼接的过程)

除了栅格模型的电子地图之外,还有一种叫做矢量模型的电子地图。那这两者有什么区别呢?

对于矢量模型(将点线面用xyz表达)的电子地图来说,由于所有的数据以矢量的方式存放管理,事实上图层是一个比较淡薄的概念,因为任何地图元素和数据都可以根据需要自由分类组成,或者划分成不同的图层。各种图层之间关系可以很复杂,例如可以将所有的道路数据做成一个图层,也可以将主干道做成一个图层,支路做成另外一个图层。图层中数据归类和组合比较自由。

而对于栅格模型(用方格来模拟实体,又叫瓦片模型)来看,图层的概念就很重要的,由于图层是生成制作出来,每个图层内包含的元素相对是固化的,因此要引入一个底图的概念。也就是说,这是一个包含了最基本,最常用的地图数据元素的图层,例如:道路,河流,桥梁,绿地,甚至有些底图会包含建筑物或者其他地物的轮廓。在底图的基础上,可以叠加各种我们需要的图层,以满足应用的需要,例如:道路堵车状况的图层,卫星图,POI图层等等。

现在在开发中所使用到的底图,通常都是通过选取必要地图矢量数据项,然后通过地图美工的工作,设定颜色,字体,显示方式,显示规则等等,最后渲染得到的(通常会渲染出一整套不同分辨率的瓦片地图)

最后,附一张矢量地图的效果图,如果大家还有什么疑问,欢迎向我提问。                  

转载于:https://blog.51cto.com/siteanesu/1621148

电子地图开发中栅格模型与矢量模型的区别相关推荐

  1. 嵌入式C开发中编程模型——重点事件驱动和表驱动

    嵌入式C开发中编程模型 事件驱动 消息驱动 事件驱动vs消息驱动 数据驱动 1. 表驱动法(Table-Driven) 用表驱动法来实现 Unix设计原则中的"分离原则"和&quo ...

  2. 微信开发者和其他服务器区别,求教微信公众号开发中两种认证技术的区别?

    本人对微信开发中2个认证方式有些不解,求各位大佬给解释一番. 众所周知,在微信开发者进行开发时,有两个角色和两个场景存在,我分别描述如下: 第一个场景:微信服务器------>我的服务器. 在我 ...

  3. 股票软件开发中全推与点播的区别

    股票软件开发中,经常遇到客户提起全推行情和点播行情,实时选股和盘中预警等术语,今天做一下整理. [全推] 所谓的全推,就是所有的证券数据同步发送,无论是否看盘,数据都是同步的,看的时候不会有停滞感觉, ...

  4. 微信小程序开发中,onLoad() 和onShow()的区别

    介绍 在微信小程序的开发过程中,经常用到很多生命周期函数,在这里介绍一下 ,onLoad() 和 onShow() 的区别: onLoad() : 在页面加载的时候触发,只会调用一次,在onLoad( ...

  5. 股票软件开发中全推与点播的区别(自己留作记录的,请csdn的小编别乱删我的文章)...

    本文内容已经迁移到cnblogs,具体地址: http://www.cnblogs.com/henrui/archive/2012/12/07/2807902.html

  6. Java开发中Netty线程模型原理解析!

    Java开发中Netty线程模型原理解析,Netty是Java领域有名的开源网络库具有高性能和高扩展性的特点,很多流行的框架都是基于它来构建.Netty 线程模型不是一成不变的,取决于用户的启动参数配 ...

  7. java backbone_[Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合

    [Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合 0 2015-09-24 17:00:04 当我们开发含有大量Javascript的web应用程序时,首先你需要做 ...

  8. ros构建机器人运动学模型_古月私房课 | ROS机械臂开发中的主角MoveIt!

    ~欢迎关注~ 微信公众号:古月居 新浪微博:古月春旭 知乎专栏:古月居 原文链接:古月私房课 | ROS机械臂开发中的主角MoveIt! 大家好,这里是<ROS机械臂开发:从入门到实战>的 ...

  9. 软件开发中的V字模型与W模型(使开发与侧试分离)

    ■前言 关于 W字模型,以前好像听过, 但是印象不深刻,几天有听别人说了一遍, 采用W字模型的主要目的是,测试与开发分离. ■瀑布开发中的V字模型 与 W模型 --- ■吐槽 ⇒ W字模型 很少有项目 ...

最新文章

  1. NTU课程 CE7454 回归与分类
  2. map for循环_如何用Map、Filter和Reduce替换Python For循环?
  3. 笔记-项目立项管理-项目建议书
  4. 嵌入式开发中对(*(volatile unsigned long *)) 的理解
  5. 物理化学 热力学第二定律
  6. 10月数据库排行:Microsoft SQL Server分数增加最多
  7. c mysql 编译_MySQL编译安装之cmake
  8. mysql根据经纬度查询范围内数据,并根据距离排序
  9. return本质探究以及try-finaly下的return探究
  10. Flask中的HttpResponse Redirect 和Render
  11. vim默认设置的配置
  12. 2017.9.6 Robot 失败总结
  13. linux监控采集项
  14. spark学习-Spark算子Transformations和Action使用大全(Transformations章(二))
  15. 凌阳单片机c语言延时函数,凌阳单片机C语言(网站整理).doc
  16. 浅谈CAN总线--- 物理层
  17. 北美常见水果与蔬菜的中英文对照
  18. 【VMware16的安装以及安装Linux教程(超详细上)
  19. 管理成长计划(二):定目标--战略制定承接
  20. 模块1--BH1750的应用(IIC)

热门文章

  1. springboot 使用i18n进行国际化
  2. 配置java环境变量
  3. 如何删除git远程分支
  4. 数据库空值(Null)小结
  5. vb.net中类型转换
  6. 读书笔记 |《推荐系统实践》- 个性化推荐系统总结
  7. PMCAFF微课堂视频合集 | O2O产品的颠覆与布局
  8. SpringMVC 全局异常处理,返回json
  9. 委托学习总结(一)浅谈对C#委托理解
  10. Day1-dns Extension