7点 讲明白地图切片的概念与原理

简介: 7点 讲明白地图切片的概念与原理

定义

地图切片:采用预生成的方法存放在服务器端,然后根据用户提交的不同请求,把相应的地图瓦片发送给客户端的过程,它是一种多分辨率层次模型,从瓦片金字塔底层到顶层,分辨率越来越低,但表示的地理范围不变。

地图缓存:又称地图瓦片,是一个包含了不同比例尺下整个地图范围的地图切片的目录,即一个缓存的地图服务就是能够利用静态图片来快速地提供地图的服务。

优缺点

1)速度快,预先配色,显示效果佳,满足高并发访问,适合做底图。

2)瓦片地图缓存非常高效,如果你曾经查看过某一区域的瓦片,当你再次查看该区域的瓦片时,浏览器可能使用之前缓存的相同的瓦片,而不用重新下载一次。

3)瓦片地图可以渐进加载。中心区域的瓦片可能优先于边缘区域的瓦片加载,你可以移动或定位某一点,即使当前地图边缘区域还未加载。

4)简单易用。所以很容易在服务器、网络、桌面或移动设备上实现技术集成。

5)需要额外占用磁盘空间,需要预先生成切片,无法自定义地图。

原理

在进行切片之前首先要确定切图的起点(Tiling scheme origin point)、图片宽度和高度,设置起点(WGS84下默认是(-400,400))的目的在于保证同一坐标系下的切片地图可以完美的叠加在一起。

在默认的Tiling scheme origin下和图片大小的情况下进行地图切片,可以根据用户设置的比例尺来计算地图数据在整个网格中的行列号,计算公式如下:

col=(int)Math.floor((point.x1-this.x1)/256/plottingResolution);
row=(int)Math.floor((Math.abs(point.y1-this.y1))/256/plottingResolution);

其中point是当前坐标,this是origin点坐标,plottingResolution指当前Level的地图的地图分辨率。

如果要计算plottingResolution,可以根据用户输入的levelScale得到当前条件下的地图分辨率:

Scale=1:(96*2*Math.PI*6378137*resolution/360/0.0254);

主要概念

1) 四至(Extent)和原点(Origin)

2)切片的分辨率和比例尺

比例尺:图上一单位长度代表实际多少长度单位;分辨率:屏幕一像素(px)代表实际多少单位,实际单位按照地图坐标而定。分辨率与dpi(每英寸的像素数)有关、与地图单位有关。

两者之间的转换关系:

1、如果地图单位是米,dpi=96 1英寸=2.54厘米;1英寸=96像素;最终换算的单位是米;

Scale=1:(96*Resolution/0.0254);

2、如果地图单位是度(地理坐标系是WGS84),dpi为96,1度约等于111194.872221777米;

Scale=1:(96*2*Math.PI*6378137*Resolution/360/0.0254);

切片分类

1)矢量切片(详情)

是一种利用协议缓冲(Protocal Buffers)技术的紧凑的二进制格式用来传递信息。当渲染地图时矢量切片使用一系列存储的内部数据进行制图。被组织到矢量切片的图层比如(水、道路、区域等),每一层都有包含几何图形和可变属性的独立要素。通俗地讲,就是将矢量数据以建立金字塔的方式,像栅格切片那样分割成一个个描述性文件,以GeoJson格式或者PDF等自定义格式组织,然后在前端根据显示需要按需请求不同的矢量瓦片数据进行Web绘图

常见的格式有GeoJson、TopoJson、PDF(ArcGIS格式)、KML、GeoRSS等等。

2)栅格切片

注意事项

注意切片等级的设定,如果生成的级别太高,等待时间非常漫长。以ArcGIS Server切片服务为例,每一级相对上一级是 4 倍的关系,每一级是将上一级一个切片再分成大小一致的四个切片,也就是说每一级生成的切片数将是 4 的 n 次幂。

不同平台的切片方式

ArcGIS:ArcGIS Desktop、ArcGIS Server、ArcGIS API For JS/Flex

开源GIS:MapServer/GeoServer、Udig、PostGIS、openLayers

目录
相关文章
ArcEngine 创建工作空间工厂对象IWorkSpaceFactory的两种方式
ArcEngine 创建工作空间工厂对象IWorkSpaceFactory有两种方式: 第一种使用ae的工厂方法:  IWorkspaceFactory pWsFactory = new ShapefileWorkspaceFactoryClass();  IFeatureWorkspace  pWorkSpace = pWsFactory.
4332 0
|
10月前
|
人工智能 安全 机器人
快手封号人工解封?是真吗
一、平台封禁机制的技术原理 快手采用"AI识别+人工复核"的双层审核体系:
|
消息中间件 存储 负载均衡
C 语言多线程编程:并行处理的利剑
C语言多线程编程是实现并行处理的强大工具,通过创建和管理多个线程,可以显著提升程序执行效率,尤其在处理大量数据或复杂计算时效果显著。
1014 5
解决windows installer 错误一例
解决windows installer 错误一例
|
Java 关系型数据库 MySQL
基于Java的校园点餐系统的设计与实现(论文+源码)_kaic
基于Java的校园点餐系统的设计与实现(论文+源码)_kaic
|
机器学习/深度学习 算法
【机器学习】P问题、NP问题、NP-hard、NP-C问题解析与举例理解
本文解析了P问题、NP问题、NP-hard问题以及NP-Complete问题的概念,并通过实例帮助理解NP问题的特点和复杂性。
5415 1
|
缓存 Java 数据库连接
Spring c3p0配置详解
【7月更文挑战第13天】
353 1
|
JavaScript 前端开发 数据安全/隐私保护
【vue】 前端vue2 全局水印效果
【vue】 前端vue2 全局水印效果
1105 1
|
存储 安全 5G
如何配置群辉相册Synology Photos实现公网访问并与朋友共享照片
很多小姐姐们在户外拍完照片后,想上传至家里的nas进行云备份并分享给别人,但是nas只能在局域网内使用,本教程教您在户外只用一个有流量的手机就能将照片上传至家里/公司的群辉nas。
|
弹性计算 小程序 安全
阿里云服务器可以干什么用?阿里云服务器用途解读及优惠配置价格表参考
在这个数字化高速发展的时代,云服务器已经成为了许多企业和个人的首选。那么,买一台云服务器到底可以干什么呢?今天就为大家深入解读一下。 1、搭建网站:无论是企业官网、个人博客,还是论坛社区,云服务器都是搭建网站的不二之选。小配置的云服务器对于个人博客来说,既经济又实用,轻松满足日常需求。 2、小程序开发:在进行小程序开发时,经常需要调用服务器的REST API或Web Socket。这就要求服务器必须提供安全的链接地址,即使用SSL加密数据。云服务器可以轻松配置SSL,保障数据传输的安全。 3、APP开发:对于软件开发人员来说,一些网络应用软件需要存放在服务器上才能被更多用户使用。
2130 0