地图瓦片png8格式理解

zqctzk zqctzk     2023-04-12     421

关键词:

地图切片后的格式是单波段的png格式。

技术图片

利用gdal读取该文件,看下文件结构:

band = gdal.Open(filepath).GetRasterBand(1)

band.ReadAsArray()

array([[217, 217, 217, ..., 217, 217, 217], [217, 217, 217, ..., 217, 217, 217], [217, 217, 217, ..., 217, 217, 217], ..., [243, 146, 78, ..., 217, 217, 217], [238, 86, 32, ..., 217, 217, 217], [166, 78, 0, ..., 217, 217, 217]], dtype=uint8)

len(band.ReadAsArray())
Out[161]: 256

  说明该图片是一个256*256大小的图片。最大值是243.

import numpy as np

np.max(band.ReadAsArray())
Out[163]: 243

  这个数组看上去像是灰度图片,实际是只是颜色表的索引值。

颜色表是什么呢:

[band.GetColorTable().GetColorEntry(i) for i in range(244)]
Out[158]: 
[(171, 198, 239, 255),
 (177, 199, 234, 255),
 (177, 200, 237, 255),
 (180, 203, 239, 255),
 (181, 205, 241, 255),
 (182, 201, 229, 255),
 (182, 203, 235, 255),
 (186, 205, 237, 255),
 (187, 202, 224, 255),
 (187, 205, 234, 255),
 (187, 207, 239, 255),
 (189, 208, 239, 255),
 (190, 210, 241, 255),

  颜色表,存储的就是颜色值了,上面例子以RGB格式存储,

(171, 198, 239, 255) R=171 G=198 B=239 最后一个255没用到
所以,上表有244个颜色值,序号为[0,243]
这里的243和上面的栅格数组最大值243刚好对应。

下面补全一张颜色表,第一列是索引值。

技术图片


至此,想明白了这个PNG的数据结构:索引表+颜色表。
索引表就是ReadAsArray()方法返回的数组,索引表的值就是来自颜色表的第一列。
array([[217, 217, 217, ..., 217, 217, 217],
       [217, 217, 217, ..., 217, 217, 217],
       [217, 217, 217, ..., 217, 217, 217],
       ...,
       [243, 146,  78, ..., 217, 217, 217],
       [238,  86,  32, ..., 217, 217, 217],
       [166,  78,   0, ..., 217, 217, 217]], dtype=uint8)
例如,数组中的 217 就是颜色表中的第217个值。

技术图片

arcgis瓦片--数据获取

Arcgis的二维地图瓦片有两种获取方式1、在Arcmap中对配置好的地图进行切图,生成对应瓦片2、使用第三方的地图下载器,直接下载,导出成arcgis瓦片格式即可使用。备注:这里主要介绍第二种获取的方式,方法1见arcgis的帮助文档... 查看详情

使用 javascript 渲染瓦片地图

】使用javascript渲染瓦片地图【英文标题】:renderatilemapusingjavascript【发布时间】:2014-03-1715:45:08【问题描述】:我正在寻找一个逻辑上的理解与示例实现想法来获取这样的瓦片地图:http://thorsummoner.github.io/old-html-tabletop-test/pallete... 查看详情

openlayers系列关于地图投影的理解

背景近期开发以MongoDB为基础的分布式地理数据管理平台系统,被要求做一个简单的demo给客户进行演示。于是笔者便打算向数据库中存储一部分瓦片数据,写一个简单的存取服务器,使用Openlayers客户端加载瓦片进行展示。本来是... 查看详情

地图瓦片整体介绍

参考技术A如今互联网地图的地图内容分为两种,一种是栅格地图瓦片,一种是矢量地图瓦片。栅格地图瓦片是一种比较传统的模式,将矢量数据渲染成为256×256像素大小的图片。前端js地图框架,如openlayer和leaflet,按一定规则编... 查看详情

png24和png8png32这些格式的图片之间的区别

先是png和jpg的区别:PNG和GIF都支持动画PNG的动画也叫APNG,只是firefox支持,如Firefox。所以动画图片来说,还是GIF支持最好第一种PNG叫PNG8(索引色透明),简单说可以理解为静态的GIF他们都只有256色,也支持索引透明,就是指定一个像素点是... 查看详情

谷歌地图下载瓦片拼接地图

选择多边形框选下载特别BIGEMAP地图下载器提供了多种选择的下载方式,方便用户得到不同的应用当中:1、矩形框选择区域下载2、多边形选择区域下载3、根据行政区(省市县区)域边界选择下载4、导入外部边界文件下载(支持k... 查看详情

openstreetmapgoogle百度bingarcgis瓦片地图服务(tms)以及瓦片计算

开源与成熟商业的瓦片地图服务(TMS  2  WMTS),都有如下共同的特性,基本成为了标准:(1)坐标系:WGS84(2)投影:墨卡托投影(Marcator,正轴等角圆柱投影)-----------------------------------------... 查看详情

supermap系列——gis数据之地图瓦片

参考技术A一、前言在古代,地图主要用军事和水利勘测,随着科技的发展,现如今地图已应用于各行各业,融入到百姓的生活当中。目前,地图包含的内容越来越丰富,范围也越来越广,并且常用在WebGIS中,每次前端请求出图... 查看详情

arcgis中瓦片和切片的定义谢谢

切片:将地图划分为一个个的网格,现在一般都是每个网格一个图片,预先在服务器生成好的。瓦片:每个比例尺上对地图上进行切片。模型如金字塔一样。参考技术A切片:就是按坐标格网将底图转切成bmp或其他图片格式,意... 查看详情

百度地图的瓦片规则参数

百度地图的瓦片的切片规则参数是什么,我想在自己的地图引擎上叠加读取百度的地图瓦片,但不知道其瓦片规则参数,如切片的起点、分辨率等等。参考技术A现在很多地图下载器就可以下载的呀,比如水经注地图下载器就可... 查看详情

离线地图解决方案:加载瓦片地图

当前主流的在线地图有百度、高德、天地图、腾讯地图、google地图等。针对局域网内网内脱离要脱离互联网访问的应用,需要下载这些主流厂商的瓦片数据。网上有很多地图下载器软件可以下载地图瓦片,可以通过各种方式获取... 查看详情

tilemaps地图创建1

参考技术A一、创建瓦片地图1.在Hierarchy窗口中,右键单击一个空白位置。2.从上下文菜单中选择2DObject>Tilemap此时将在Hierarchy窗口中创建两个游戏对象:<1> Grid(网格):顾名思义,场景中的网格可用于将游戏对象均匀... 查看详情

openlayers3应用:加载百度离线瓦片地图

上一篇文章介绍了使用openlayers3加载百度在线地图,对某些项目或应用场景比如不允许上外网的单位,某些项目只针对一定区域地图加载应用,比如一个县的地图,可以采用下载百度瓦片地图,在服务器或者本机单独部署的方式... 查看详情

离线地图解决方案:地图地物搜索

离线地图发布的“底图”都是各大地图厂商的“瓦片”或者利用geoserver生成的瓦片数据,这些瓦片数据都是一些jpg或者png格式的图片,很多GIS应用中,用户除地图显示,地图添加地物外,也需要用关键字搜索地物。普遍的做法是... 查看详情

arcgisapi发布的地图模糊

参考技术Aarcgisapi发布的地图模糊:原来在加载图层的时候,可以指定图片格式,默认是png8,指定为jpg后就可以了 查看详情

瓦片地图是什么鬼

瓦片地图的诞生 地图数据通常体量较大,需要充足的带宽和数据渲染能力。瓦片地图诞生以前,地图多在局域网的桌面软件中使用。互联网的发展,催生了通过浏览器使用地图的需求,于是在1999年,出现了WM... 查看详情

unity-瓦片地图详解(代码片段)

前言在学习瓦片地图的使用时,我发现无论国内外还是Unity官方的相关教程都比较散,接触的比较浅,学的我挺难受的,所以就把各个地方看的教程加上我自己的理解,和官方的API手册,总结出了这个详解... 查看详情

利用线程池下载百度地图瓦片图(代码片段)

  继上一文章,百度地图离线功能,这里主要讲述下载瓦片图具体方法。  1.利用全能电子地图下载带水印的瓦片图。其中文件夹路径为tile/层级/x/y.jpg,如下图所示,全能电子地图1.9下载的百度地图瓦片图是一个个黑点。  2... 查看详情