ArcGIS Server开发教程系列(3)切片

切片工作,我们可以一级一级的切,也可以,所有的一块切,Recreate All Tiles这项是说,在没有进行任何的切片工作时,可以选用这项;Recreate Empty Tiles这项是说,如果之前已经对某一级进行了切片,再重新切片时,可以选这项,具体可以查看帮助;Delete Tiles这项可以删除之前切的切片;比方说我们计算机正在切图,突然间断电了,切了几天,几十G的地图切片,怎么办?我们不能重新开始切啊,我们就可以选择Recreate Empty Tiles,把剩余的地图切片补上即可。

切片参数设置可以在发布服务时进行,或者catalog里点击已发布的服务修改服务属性

这里设置文本的反锯齿,最好设置为normal或以上,否则容易出现文本不清晰

设置缓存目录:这个很重要,因为我们有时切图可数据量可能几十G,上百G,甚至上T,这样的话我们不能把切片默认到目录:C:\arcgisserver\directories\arcgiscache目录,我们需要添加一个磁盘空间比较大的盘

设置切片的CPU核数,本机4个CPU,4个线程;所以我们设置最大用几个CPU切片的时候,那就是3了,如果你设置成5,那么最后发布是不成功的。

Cpu线程数决定了你将要最多要实例化多少个进程去切图,一般最大设置为CPU线程数-1,这样保证CPU使用率在50%左右,如果设置太大,会造成CPU使用率在100%,硬件使用率一直在100% 可能会导致负荷过重,从而导致系统出现问题。

根据需求分别设置下面的参数,切片切几个级别

选择suggest,弹出输入框输入设置几个级别,这里设置为5

下面按图设置即可

可以添加或删除自定义下的比例尺(这个地方已经进行过切片所以是灰色的),可以设置切片的格式为PNG32,存储格式

高级设置这里根据需要选择

以下一段资料参考http://blog.csdn.net/warrenwyf/article/details/6069711

在ArcGIS 10中出现了一种新的切片缓存文件格式:紧凑型存储(Compact)。与之前的松散型存储(Exploded)相比,它有迁移方便、创建更快、减少存储空间等诸多优点,已经成为了创建切片缓存的默认格式。对于本身ArcGIS的产品而言,访问紧凑型存储与访问松散型存储没有任何区别,但是,如果第三方应用想访问新的切片格式,目前官方给出了“不可以”的答复:

The internal architecture of the bundle is not publicly documented by ESRI. If you‘ve coded your own logic to pull tiles out of a virtual directory, you should continue to use the "exploded" format which stores each tile as a single file and was the only option at ArcGIS Server versions 9.3.1 and previous.

我Google了一下,也没有任何相关的资料,因此索性自力更生,自己分析一下紧凑型存储的格式,相信这是目前可以找到的关于紧凑型存储内部格式的唯一资料。

l  紧凑型存储的原理

紧凑型存储最主要的两种文件是bundle和bundlx文件,其中bundle文件用以存储切片数据,bundlx是bundle文件中切片数据的索引文件。

一个bundle文件中最多可以存储128×128(16384)个切片,但是创建切片缓存并不是一张张切片单独生成,而是以4096像素(无抗锯齿)或2048像素(有抗锯齿)为边长渲染的,如果我们选择的切片边长为256像素并开启了抗锯齿,那么每次ArcSOC进程创建的是一张以8×8(64)个切片拼接成的大图,然后切割后存入bundle文件中。

下图中,蓝色边框代表的是bundle文件,黑色格子是生成切片时拼接的大图,具体的每个切片在黑色格子中,图中并没有显示出来。

l  存储格式的分析

在分析紧凑型存储格式之前,我首先问自己,如果你要在一个bundle文件中存储内容,同时通过一个bundlx文件中存放索引应该怎么做?中规中矩的做法就是参考数据库的位图索引方式,在bundlx文件中用固定的几个字节标识一个切片在bundle文件中的状态(存储的偏移量和长度)。

观察ArcGIS生成的bundlx文件,每个文件都是一样的大小:81952字节。上面已经提到,每个bundle文件中最多存储16384个切片,虽然bundle文件中可能并没有这么多切片,但是,我猜测bundlx文件中必然是保留了所有者16384个切片的索引位置。粗略估计每个切片会占据大约5个字节,16384×5=81920字节,还多出32字节,猜测存储bundlx文件的标识信息。

通过对一个很存储切片很稀疏的bundlx文件的规律进行观察和猜测,确定了bundlx中文件起始16字节和文件结束16字节与索引无关,剩余的81920字节数据以5个字节的频率重复,构成了一个对bundle文件的索引。

本来以为这5个字节会保存bundle文件中切片数据的偏移和长度,但是发现5个字节表达的信息量可能不够,因此,我同时对bundle中的切片数据进行了一个分析。

我猜想文件并没有进行压缩处理,因此在文件中搜索PNG文件的文件头0x89504E47(我在创建缓存时选择了PNG24格式),发现果然如此。同时,每2个切片数据之间相隔了4个字节(切片数据我是用Exploded的图片直接进行比较的),通过猜想、尝试,发现这4个字节正好是以低位到高位的方式标示了后续这个切片数据的长度。

既然切片数据长度是在bundle文件中记录的,那么在bundlx文件中索引的必然只包括切片数据的偏移量,经过实验发现,bundlx中的5个字节也是以低位到高位的方式标示了数据的偏移量。

切片数据长度和数据偏移猜想应该是无符号的整数,后面的实践证明了这一点。

还有一个问题,bundlx中的每5个字节标示的到底是哪个切片的数据偏移?我的实验的结果是:按列排序:


1


129




2


130


3


131






128


256


16384

从上面的分析,我们如果知道了一个切片的级别、行号、列号,就可以通过bundlx首先找到bundle中切片内容的偏移,然后从bundle文件中取出4个字节的长度数据,再随后根据这个长度读取真实的切片数据。关于如何计算切片的行号、列号,以及bundle文件的命名方式,相对比较简单,这里就不详细叙述了。

然后在catalog里就开始自动切片了,可以查看切片进度

时间: 2024-12-28 20:04:18

ArcGIS Server开发教程系列(3)切片的相关文章

ArcGIS Server开发教程系列(1) Arcgis server 10.1 的安装

本系列所使用的软件版本如下: Windows 7 X64 / Windows server 2008 X64 Arcgis for Desktop 10.1 Arcgis 10.1 for server ArcSDE10.1 SQL Server VS 2010 所用数据全部存储在SDE中. Arcgis server10.1下载地址(不做永久保证): http://yun.baidu.com/s/1kTp96Rl 安装时,需要设置用户名密码,这里一定要记清楚. 设置账户为 arcgis 密码 

ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务

1.       Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有服务.但是,不能编辑服务器属性.发布服务.编辑服务属性或者添加.删除.启动.停止或暂停服务. 2. Pulish GIS services: 发布身份连接 使用此种连接,可以发布GIS服务,也可以配置和发布草案服务,但是不能编辑站点的任何属性. 3. Administrator GIS servic

java建站系统开发教程系列之设计表结构

java建站系统开发教程系列之设计表结构 根据需求设计表结构如下: SET FOREIGN_KEY_CHECKS=0; -- Table structure for tbl_articles -- ---------------------------- DROP TABLE IF EXISTS tbl_articles; CREATE TABLE tbl_articles ( id int(11) NOT NULL AUTO_INCREMENT, cid int(11) DEFAULT NUL

[转载]Python量化交易平台开发教程系列1-类CTP交易API的工作原理

原文出处:http://vnpy.org/2015/03/05/20150305_Python%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%971-%E7%B1%BBCTP%E4%BA%A4%E6%98%93API%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/ 类CTP交易API简介 国

web前端开发教程系列-4 - 前端开发职业规划

前言 关于我:小天 1). 架构师,项目经理,产品经理 2). 中间件研发 3). VPCC 云计算基础平台管理 4). 智慧旅游 5). 智慧教育 6). 一次失败的创业体验(爱邂逅网) 一. 在开始规划职业之前,应该充分认识自己从事的行业,结合自己的价值观,树立合理目标,持之以恒 二. 人生阶段 1. 30岁之前: 2. 30岁以后:慢慢开始登上这个社会的大舞台,你这时候的目标就应该是一些具体的成就了,是做这些事情的副产品的时候了 三. 展望未来,个人认为在以下的前端技术领域,会产生较大的机

web前端开发教程系列-2 - 前端开发书籍分享(转)

目录: 前言 一. CSS 二. JavaScript 三. jQuery 四. 后记 前言 前端书籍在每个商城或书架上面都是琳琅满目,很多初学者又不能很好的判断书的质量或层次.因为今天给同学们分享一下,看书主要是两个方面,一个是层次性,一个是持续性.阅读是一件快乐的事情,要持续的浇灌,希望之田才会长青不衰. 一. CSS css的书大多是停留在基础普及,就是介绍Css基础概念的居多. 下面列举几个,有的可能已经绝版了,只能看到电子版了. CSS网站布局实录  这本是出现比较早的css书籍,现在

ArcGIS Server 开发实践之【Search类】

开发中整理的.不足之处还请谅解! ----------------------------------------------- Class:Search 调用方式:require(["esri/dijit/Search",function(Search){......}]); /*描述:搜索小工具提供一种基于位置服务和地图.要素服务图层的搜索.这些指定的数据源在搜索框中搜索的内容. 如果用定位或地理服务时使用 findAddressCandidates方法. 搜索工具类似地理编辑工具

web前端开发教程系列-2 - 前端开发书籍分享

目录: 前言 一. CSS 二. JavaScript 三. jQuery 四. 后记 前言 前端书籍在每个商城或书架上面都是琳琅满目,很多初学者又不能很好的判断书的质量或层次.因为今天给同学们分享一下,看书主要是两个方面,一个是层次性,一个是持续性.阅读是一件快乐的事情,要持续的浇灌,希望之田才会长青不衰. 一. CSS css的书大多是停留在基础普及,就是介绍Css基础概念的居多. 下面列举几个,有的可能已经绝版了,只能看到电子版了. CSS网站布局实录 这本是出现比较早的css书籍,现在可

ArcGIS Server 开发之鹰眼地图的实现

鹰眼简单点说就是地图的联动,鹰眼的全称是OverviewMap,在ERSI提供的API包中,在dijit中进行类的调用.查了很多的资料,总结一下: 具体的代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>鹰眼和比例尺</title>