电子地图开发中栅格模型与矢量模型的区别
随着gis行业的不断发展,加上电子地图的日益普及,使得如今市场上与电子地图相关的产品越来越多,从事电子地图开发的企业也如雨后春笋般纷纷出现,既有像百度、谷歌、超图等这些行业巨头,也有像上海为卓、广州哈图、深圳玖图等中小型企业。但不管是什么类型的电子地图产品,也不管是哪家公司开发,都离不开支撑地图信息展示的数据和地图的底图。那这些数据是从哪里来的呢?根据丰富的项目开发经验和对行业的了解,这里来给大家说一下。
要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:
如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。
目前在互联网公开服务中,或者绝大多数手机APP里看到的,都是基于栅格(瓦片)模型的地图服务,并通过10多层乃是20多层不同分辨率的图片所组成。当用户进行缩放时,根据缩放的级数,选择不同分辨率的瓦片图拼接成一幅完整的地图(当网速慢的时候,用户其实能够亲眼看到这种不同分辨率图片的切换和拼接的过程)
除了栅格模型的电子地图之外,还有一种叫做矢量模型的电子地图。那这两者有什么区别呢?
对于矢量模型(将点线面用xyz表达)的电子地图来说,由于所有的数据以矢量的方式存放管理,事实上图层是一个比较淡薄的概念,因为任何地图元素和数据都可以根据需要自由分类组成,或者划分成不同的图层。各种图层之间关系可以很复杂,例如可以将所有的道路数据做成一个图层,也可以将主干道做成一个图层,支路做成另外一个图层。图层中数据归类和组合比较自由。
而对于栅格模型(用方格来模拟实体,又叫瓦片模型)来看,图层的概念就很重要的,由于图层是生成制作出来,每个图层内包含的元素相对是固化的,因此要引入一个底图的概念。也就是说,这是一个包含了最基本,最常用的地图数据元素的图层,例如:道路,河流,桥梁,绿地,甚至有些底图会包含建筑物或者其他地物的轮廓。在底图的基础上,可以叠加各种我们需要的图层,以满足应用的需要,例如:道路堵车状况的图层,卫星图,POI图层等等。
现在在开发中所使用到的底图,通常都是通过选取必要地图矢量数据项,然后通过地图美工的工作,设定颜色,字体,显示方式,显示规则等等,最后渲染得到的(通常会渲染出一整套不同分辨率的瓦片地图)
最后,附一张矢量地图的效果图,如果大家还有什么疑问,欢迎向我提问。
转载于:https://blog.51cto.com/siteanesu/1621148
电子地图开发中栅格模型与矢量模型的区别相关推荐
- 嵌入式C开发中编程模型——重点事件驱动和表驱动
嵌入式C开发中编程模型 事件驱动 消息驱动 事件驱动vs消息驱动 数据驱动 1. 表驱动法(Table-Driven) 用表驱动法来实现 Unix设计原则中的"分离原则"和&quo ...
- 微信开发者和其他服务器区别,求教微信公众号开发中两种认证技术的区别?
本人对微信开发中2个认证方式有些不解,求各位大佬给解释一番. 众所周知,在微信开发者进行开发时,有两个角色和两个场景存在,我分别描述如下: 第一个场景:微信服务器------>我的服务器. 在我 ...
- 股票软件开发中全推与点播的区别
股票软件开发中,经常遇到客户提起全推行情和点播行情,实时选股和盘中预警等术语,今天做一下整理. [全推] 所谓的全推,就是所有的证券数据同步发送,无论是否看盘,数据都是同步的,看的时候不会有停滞感觉, ...
- 微信小程序开发中,onLoad() 和onShow()的区别
介绍 在微信小程序的开发过程中,经常用到很多生命周期函数,在这里介绍一下 ,onLoad() 和 onShow() 的区别: onLoad() : 在页面加载的时候触发,只会调用一次,在onLoad( ...
- 股票软件开发中全推与点播的区别(自己留作记录的,请csdn的小编别乱删我的文章)...
本文内容已经迁移到cnblogs,具体地址: http://www.cnblogs.com/henrui/archive/2012/12/07/2807902.html
- Java开发中Netty线程模型原理解析!
Java开发中Netty线程模型原理解析,Netty是Java领域有名的开源网络库具有高性能和高扩展性的特点,很多流行的框架都是基于它来构建.Netty 线程模型不是一成不变的,取决于用户的启动参数配 ...
- java backbone_[Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合
[Java教程]移动前端开发中的Backbone之一:Backbone中的模型和集合 0 2015-09-24 17:00:04 当我们开发含有大量Javascript的web应用程序时,首先你需要做 ...
- ros构建机器人运动学模型_古月私房课 | ROS机械臂开发中的主角MoveIt!
~欢迎关注~ 微信公众号:古月居 新浪微博:古月春旭 知乎专栏:古月居 原文链接:古月私房课 | ROS机械臂开发中的主角MoveIt! 大家好,这里是<ROS机械臂开发:从入门到实战>的 ...
- 软件开发中的V字模型与W模型(使开发与侧试分离)
■前言 关于 W字模型,以前好像听过, 但是印象不深刻,几天有听别人说了一遍, 采用W字模型的主要目的是,测试与开发分离. ■瀑布开发中的V字模型 与 W模型 --- ■吐槽 ⇒ W字模型 很少有项目 ...
最新文章
- NTU课程 CE7454 回归与分类
- map for循环_如何用Map、Filter和Reduce替换Python For循环?
- 笔记-项目立项管理-项目建议书
- 嵌入式开发中对(*(volatile unsigned long *)) 的理解
- 物理化学 热力学第二定律
- 10月数据库排行:Microsoft SQL Server分数增加最多
- c mysql 编译_MySQL编译安装之cmake
- mysql根据经纬度查询范围内数据,并根据距离排序
- return本质探究以及try-finaly下的return探究
- Flask中的HttpResponse Redirect 和Render
- vim默认设置的配置
- 2017.9.6 Robot 失败总结
- linux监控采集项
- spark学习-Spark算子Transformations和Action使用大全(Transformations章(二))
- 凌阳单片机c语言延时函数,凌阳单片机C语言(网站整理).doc
- 浅谈CAN总线--- 物理层
- 北美常见水果与蔬菜的中英文对照
- 【VMware16的安装以及安装Linux教程(超详细上)
- 管理成长计划(二):定目标--战略制定承接
- 模块1--BH1750的应用(IIC)