(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
参考:http://www.google.cn/maps/vt?lyrs=s&x=0&y=0&z=0
参考:http://www.tianditu.gov.cn
参考:https://baike.baidu.com/item/%E5%A4%A9%E5%9C%B0%E5%9B%BE

通常在网络上用到的影像图,像google,bing,baidu,gaode,tianditu等,这些厂商提供的影像图服务,提供的都是wmts地图服务的地图,预先分层切片的地图服务。
层级的结构形如:
0级1张图片,1级2 * 2张图片,2级4 * 4张图片,3级8 * 8张图片…
理论上最多可以提供0-26级图片服务(第26级的图片数量为426张图片,基本达到了double能表达的精度范围253),google通常提供了全球21级的地图服务,天地图提供了国内的18级地图服务。

不知道大家是否会有这个疑问,全球的影像数据会有多大?应该会很大吧,是在那种数量级上?
如果我下载11级地图:会占用多少空间?会有多少个影像图片?精度能达到多少米?
下面针对这些问题进行分析。

影像图数量&存储大小推算

通常互联网上影像图都是使用webmecator投影方法进行的投影,地球会被投影为:长—2 PI R,宽—2 PI R,长宽一致的正方形。首层(level=0)正好是一张影像图来表达。

注:webmecator支持的纬度范围
Math.PI/2 - (2.0 * Math.atan(Math.exp(-Math.PI))))*180/Math.PI = 85.05112877980659

列表计算数量值:

  • 逐层的x/y的索引值范围:0 <= x/y < Math.pow(2, n)
  • 当前层的图片数量:Math.pow(4,n)
  • 包含下层的总数量:Math.pow(4,n) + Math.pow(4,n-1) + … + Math.pow(4,0)
// 计算包含下层的总数量js方法:
function total(n){if(n>0) return Math.pow(4,n) + calc(n-1);return 1;
}
层级 x/y索引范围 当前层图片数量 包含下层的总数量
第0层 0 1 1
第1层 0-1 4 5
第2层 0-3 16 21
第3层 0-7 64 85
第4层 0-15 256 341
第5层 0-31 1024 1365
第6层 0-63 4,096 5,461
第7层 0-127 16,384 21,845
第8层 0-255 65,536 87,381
第9层 0-511 262,144 349,525
第10层 0-1,023 1,048,576 1,398,101
第11层 0-2,047 4,194,304 5,592,405
第12层 0-4,095 16,777,216 22,369,621
第13层 0-8,191 67,108,864 89,478,485
第14层 0-16,383 268,435,456 357,913,941
第15层 0-32,767 1,073,741,824 1,431,655,765
第16层 0-65,535 4,294,967,296 5,726,623,061
第17层 0-131,071 17,179,869,184 22,906,492,245
第18层 0-262,143 68,719,476,736 91,625,968,981
第19层 0-524,287 274,877,906,944 366,503,875,925
第20层 0-1,048,575 1,099,511,627,776 1,466,015,503,701
第21层 0-2,097,151 4,398,046,511,104 5,864,062,014,805

通常一张影像图片大小约为10KB,基于图片的数量*10KB,我们就可以直接得到占用的存储容量大小。

  • Google提供0-21级地图,21级x/y索引值的范围位于 [0, 2^21),第21级的影像图片数量约为4.398万亿张,影像图片的总数量约为5.864万亿张图片,预估占用的存储容量为58.64PB。

  • 天地图提供0-18级地图,如果包含全球的话,图片的总数量约为916亿张图片,预估占用的存储量为916TB。
    不过天地图仅提供国内领土面积的18级地图,其它地方提供的较低精度的地图。所以它共耗费了约30亿张图片,占用存储约30TB—来自百度百科。

精度推算

我们已知了影像图采用的投影方式-webmecator,这种投影方式下,赤道处的面积变形比较小,越靠近高纬度变形会变大很快。

本次采用赤道处,作为计算精度的基准,进行层级精度的推算。
推算的方法:

  • 我们先计算处赤道的周长,然后在计算出在某一层级下用了横向用了多少张图片,就可以得出图片横向表达的实际距离。
  • 有了图片表达的实际距离,再除以图片横向的像素数,就可以得出每个像素表达的距离,也就是我们通常表达的影像图精度。

地球长半轴的长度为(WGS84标准):6,378,137米
地球的赤道周长约为:2 * Math.PI * 6378137 ~= 40,075,017 (m)

就拿天地图的18级来说,x/y索引范围0-262,143,在横向上有262,144张图片:
40,075,017(m) / 262,144 ~= 152.874 (m)
影像图通常都256*256的,横向上有256个像素,每个像素表达长度为:
152.874(m) / 256 ~= 0.597 (m) = 59.7cm
所以,天地图对国内提供的地图精度约为0.6m,这个可以在资料上查到。

计算第n级的精度:2 * Math.PI * 6378137 / Math.pow(2,n) / 256

同样的,对于Google地图来说,21级地图的精度计算为:
2 * Math.PI * 6378137 / Math.pow(2,21) / 256 ~= 0.0746 ~= 7.5cm
可以看出21级地图时,精度到达了7.5cm,精度还是很高的了。

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

地图影像图数量存储大小精度推算相关推荐

  1. 地图数据的存储探索(GIS)

    地图数据的存储探索(GIS) 平常我们使用的地图,比如百度地图.高德地图.腾讯地图等等地图应用,全部都是基于地理信息的电子化展示,因为自己是计算机出身,对于地信的这些东西不是很熟悉,所以补充一些知识. ...

  2. Liunx:核实文件数量和大小

    简介:在A.B服务之间进行scp远程复制时,如果文件目录数量众多,并且总量庞大,那么由于网络抖动或者系统存储机制等原因,很容易出现复制多传,少传,漏传的现象.规避此类事件的方法为,首先压缩成tar包, ...

  3. SQL Server 堆表行存储大小(Record Size)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...

  4. MySQL之innodb与myisam:锁 事务 外键 主键 存储结构 存储大小 索引 count 注重点

    行锁:innodb支持行锁 事务:innodb支持事务 外键:MyISAM不支持InnoDB支持 主键:myisam允许没有索引和主键的表存在:innodb如果没有设定主键或者非空唯一索引,会生成一个 ...

  5. SparkSql 控制输出文件数量且大小均匀(distribute by rand())

    @羲凡--只为了更好的活着 SparkSql 控制输出文件数量且大小均匀(distribute by rand()) Q:Spark如何控制文件你输出数量? A:这个简单,用 coalesce或者re ...

  6. 证件照修改尺寸像素大小和存储大小

    目录 前言 1.修改尺寸像素大小 2.修改图像存储大小 前言 生活中,报名一些考试,往往对提交的证件照的尺寸大小和存储大小有指定的要求,因此汇总整理一些常用方法. 1.修改尺寸像素大小 方法一:使用W ...

  7. HDFS物理块存储大小

    HDFS物理块存储大小 一.HDFS数据块 数据块:Block是HDFS物理上把数据分成一块一块. 数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储. hadoop数据 ...

  8. java指定图片的dpi和存储大小kb

    java指定图片的dpi和存储大小kb google图片处理插件 java代码(只需要修改下文件路径往里面存图片就行了) 参考文章 公司需求,将文件夹下面的所有图片dpi设置为300,存储大小为90到 ...

  9. Unity 计算图片真实存储大小(Preview视图)

    分析图片导入unity后,该图片所占存储大小,如有错误,请多指教. 问题:一张图片导入unity,那么这张图片打包apk,占用包体多大空间呢. 经过测试 一张16M(文件属性大小) 分辨率4096x4 ...

最新文章

  1. 新增表单控件和表单属性
  2. 数学建模学习笔记——蒙特卡洛模拟
  3. 笔记:猎头如何在一周之内“摸清”一个行业
  4. 生信宝典被分享最多的15篇文章
  5. CentOS安装Samba服务
  6. hdu3535 (分组背包,最少选一 + 最多选一 + 随意)
  7. 深入浅出之正则表达式(转载)
  8. 超好用的 Windows 效率工具推荐
  9. JMeter详细使用教程及实际案例
  10. 什么是IAST(交互式应用安全测试)?
  11. oracle制造分销模块,oracle ebs表结构及功能总结(财务,制造,分销模块)
  12. mysql服务器无法启动
  13. OBS音频相关参数设置(一.音频的输入)
  14. Linux网络管理18:DHCP服务器
  15. 移动SEO优化指南(附百度内部移动化培训课程)
  16. 《慢慢来,一切都来得及》语录
  17. android拷机获取内存使用的脚本
  18. 宕昌一中2021高考成绩查询,有朋自远方来 | 甘肃省陇南市宕昌一中来广元中学考察交流...
  19. 零线和地线接反了会发生什么?
  20. AI TIME 祝清华大学111周年生日快乐!

热门文章

  1. c语言飞机源代码,C语言写的飞机源码
  2. 2020李宏毅学习笔记——8. Convolution Netural Network
  3. BP神经网络(Back Propagation Neural Network)Matlab简单实现
  4. shell脚本之正则表达式
  5. 省市区三级联动area
  6. 松弛法求解给定边界条件的泊松方程
  7. C++计算md5/sha1/sha256/sha384/sha512算法
  8. 还不错的微信活码程序源码+功能强大
  9. Redisson框架官方介绍
  10. 用python画一个笑脸_python画个笑脸