ArcGIS map Cache

  ArcGIS map services 在发布地图时可以使用Cache来显著提升性能。一个从cache中获取静态的切片来代替动态暄染的地图的地图服务被称作缓存地图服务。地图cache是一个包含了不同级别的地图切片的目录。ArcGIS Desktp以及ArcGIS Server Web ADF程序可以使用通过虚拟目录来在地图服务中使用切片缓存。你可以通过ArcCatalog或者scriptable geoprocessing从一个已知的的地图服务中创建Cache.

    一个缓存的地图服务一个能够利用静态图片来快速提供地图的服务。一个完整的缓存地图服务使用以下几个组件来完成其工作:

缓存:这是由包含了不同等级集合的缓存地图图片以及描述其Cache的框架的文件(Conf.xml)组成的地图服务缓存目录,

WEB服务器:WEB服务器运行着实际的地图服务,一个虚拟的地图缓存目录与真实的缓存目录相对应,同时使用切片处理服务(tile handler service),而其虚拟路径是不能直接访问的。

The Cache

    这里有两种不同的地图缓存服务, single fused cache 或者 multi-layer cache,一个single fused cache模式下,包含了所有的图层的所有的级别,其小切片在其内部叫super-tiles。multi-layer cache包含的图片来自于每一层的很多小的碎片。在两种情况下,super-tiles,分割成根据用户定义的适合程序应用的尺寸的无数的小切片。

    使用两种类型的Cache在客户端的表现有很大的不同,fused cache看上去像一个整体的图层不允许元素的选择,标签的选择不能被校正,同时其可视性也不能在客户端被操作,multi-layer方式下在客户端其图层可以控件可见性,同样标签,以及元素的选择同样都是可以的。

   默认的情况下,选择fused caches,程序使用fused cache而不使用其地图服务,通过其切片处理服务来直接从Cache目录中进行图片的拖动。

Cache组织:Cache目录结构

    地图服务缓存目录必须位于其父级目录,也就是服务缓存目录中,一个服务缓存目录是在ArcGIS Server中注册成一个目录,在这里保存了地图缓存目录。

    一个single fused cache被组织成一个三维的网格,从而与其目录结构相对应,其目录结构中上层目录(用标签标明了不同的级别)包含的下级目录是按照不同行来分布的,在这个底层目录中包含了所有的图片,multi-layer缓存在顶层有另外一个附加的目录级别。这些切片是同一级比例尺寸,其像素尺寸用户可选择,128,512,1024像素尺寸。切片是PNG-24的图片,图片根据默认的透明度设置背景颜色。如果地图文件中没有背景颜色设置,那么其背景图片将被设置成253.253.253.这在ArcMap中可以被修改。


    使用缓存地图服务最大的好处是可以动态的改进客户端用来显示复杂的地图所花费的时间,一个客户端使用缓存地图服务获取和显示地图时仅仅只是受到其联系的带宽的限制,比如说,一个简单的
2D的地图需要4秒去请求获取,使用动态地图服务可以使地图使用阴影和其他高级的图像属性渲染和显示地图,以及使用缓存地图服务只需要1秒钟就可以显示。因此使用缓存地图服务消除了需要牺牲图像质量来换取显示的代价。

转载于:https://www.cnblogs.com/j3eee/archive/2009/02/24/1397578.html

arcgis xml 下载 切片_切片文件发布成切片服务 一、需求背景:最近碰到这样的需求,就是手头拥有他人给的切片文件,但是想在自己服务器中将该切片文件发布成切片服务。如何实现?二、解决办法:此类需求是非常常见的,arcgis server 提供了Servering tools工具箱,如何使用这些工具可以参考:和本人另一文章:在这些工具箱中,有导入地图缓存切片的工具import map server cache ,可以将切片导入已有的切片服务。使用该工... 阅读详情

相关推荐

关于ArcGIS Server分块切片的一些想法

引子 之前一直接到很多客户关于分块切图之后导入切片的问题,比较典型的情况是:客户想要对大范围的影像切图,但由于各种原因希望能分块进行切图后再合并在一起。基于这个需求,本文从切片和切片存储机制角度出发,为如何分块提出建议,同时提供一种可能的方案以期达到分块切图再合并的需求。 首先,我们需要了解ArcGIS的切图机制和使用bundle这种紧凑型存储切片的机制。以下内容是作者根据菩提老王的一篇旧文中...

notxyz的博客 1641

ArcGIS pro使用中的cache文件导致C盘空间不足解决方案

1、ArcGIS pro使用中会产生一个ArcMap.cache.data文件,该文件很大,如果C盘空间不足,会导致软件使用的过程卡顿,360清理软件识别出来一个17GB的文件,导致C盘没空间了。2、修改本地缓存路径即可解决。

u011468564的博客 4495

优化ArcGIS Server切片服务性能:缓存管理与高效迁移策略

本文深入探讨了优化ArcGIS Server切片服务性能的核心策略,重点聚焦于缓存管理与高效迁移。详细介绍了缓存服务的局部更新、动态查询机制、服务器目录清理等日常维护技巧,并提供了服务迁移、缓存复用与合并的实战方法,旨在帮助GIS运维人员提升服务稳定性与资源利用效率。

weixin_29231725的博客 201

ArcMap及ArcGIS Pro缓存清理

桌面软件用的时间长了可能会积攒一些缓存垃圾文件,软件可能会变慢,还占用存储空间,所以可以定期进行清理。 一、ArcMap缓存清理 二、Pro清除缓存 三、Index Thumbnail索引图像删除 本人电脑用了好几年,没清理过这个文件夹,导致积攒了20多个G的图片,两百多万个jpg文件。 这里清理有一个注意事项,在文件超多的时候,千万要记得先把回收站禁用了再删除。。。别问我是怎么知道的。。。 如果你已经删除了一大堆东西到回收站,遇到了和我一样的蓝屏惨剧,就不要妄图用360,电脑管家啥的了。。。建议

suntongxue100的博客 1万+

云中遨游,ArcGIS Online托管服务之ArcMap托管切片服务

第一手信息,来自ArcGIS_云计算新浪微博http://weibo.com/arcgiscloud 这一篇主要是介绍如何发布切片服务。前面的几步,和托管要素服务是一样的。 (1)打开ArcMap,载入数据。 (2)登录ArcGIS Online。点击“file”-“sign in”,输入用户名和密码,点击登录。 (3)从这步开始才真正的开始发布服务,点击“fi

ArcGIS产品与技术专栏 1677

ArcGis10.X添加在线地图

ArcGis添加在线地图 本人使用版本是arcgis10.8 10.X版本共用此方法。 打开arcgist新建一个空白地图,如下图所示。 打开arcgis右侧目录,打卡后如下面图片所示。 点击目录里面的GIS服务器,找到添加ArcGis Server,如下图所示。 打开后按照下面图片所示,输入该服务器地址 http://cache1.arcgisonline.cn/arcgis/rest/services 添加完成后再右侧目录里,GIS服务器里面会出现一个新的连接,如下图所示。

道明远的博客 5659

ArcMap的地图缓存MapCache

什么是地图缓存--MapCache 缓存 :顾名思义,是把需要的数据存放在缓存中,提高数据的访问效率。 地图缓存同样是把我们在编辑,标注,缩放,平移 等过程中出现的图形 暂时存放在Cache中--以图片的形式存储,每当我们进行同样的操作,视图窗口会调用缓存中的图片,而不是马上刷新地图数据,缓存中已存在的图片会及时返回给视图窗口,完成相应的操作,这样可以大大提高视图的显示效率。 !!!!注意的

NOI Study 2875

Mapgis临时文件清除

【1】本软件用来清除MapGIS自动生成的后缀名中带有“~”的文件和光栅文件。 【2】只须将本软件放在任意目录下,双击即可自动删除这些临时文件。

使用Catalog或者ArcGIS Manager创建Map Cache(切片)

<br /><br />       创建ArcGIS Server相关的地图应用,需要创建地图服务(Map Service),关于地图的创建在这里不做介绍,相信有过GIS开发的人员应该都知道如何去创建或者获取地图。在这里假定已经有了发布地图服务所需要的MXD文件。  <br />    本文讨论创建一个有Map Cache(地图缓存)功能的地图服务,其实现基于ArcGIS Server 9.3自带的一些工具,因此在版本上,要求所安装的ArcGIS Server版本为9.3。当然ArcGIS Serve

李厂长的自留地 4210

【sap2000】部分模型通过.s2k文件合并模型generating a global model through partial models by .s2k text file

现在需要通过选项File → Import → SAP2000 .s2k Text File → Add to existing model(如果使用其中一个部分模型作为基础)或New model(如果使用新文件)添加部分模型,并使用以下导入选项。模型A(阶段1/5) Model A (Phase 1/5)模型B(阶段2/5) Model B (Phase 2/5)模型C(阶段3/5) Model C (Phase 3/5)模型E(阶段5/5) Model E (Phase 5/5)

hmywillstronger的博客 1753

STGCN+YOLOV8行为分类

使用关节点追踪网络获取关节点数据,以yolo-v8网络为例,获取2D关节点数据。此次实验采用KTH动作识别数据集,包含人步行、慢跑、跑步、拳击、挥手和拍手等动作。

SDADASDAF的博客 3893

使用ArcGIS Server Manager创建Map Cache地图服务

创建ArcGIS Server相关的地图应用,需要创建地图服务(Map Service),关于地图的创建在这里不做介绍,相信有过GIS开发的人员应该都知道如何去创建或者获取地图。在这里假定已经有了发布地图服务所需要的MXD文件。    另外,如果想使用ArcGIS Server发布地图服务,当然需要安装ArcGIS Server了,关于ArcGIS Server的安装比较简单,这里不做详细介...

ljmybfq的专栏 265

Cadence Allegro 17.4 保姆级教程:PCB位号重排与反标回原理图完整避坑指南

本文详细解析了Cadence Allegro 17.4中PCB位号重排与反标回原理图的全流程,包括安全工程准备、智能重排策略和反标黄金法则。特别针对芯片封装协同设计(Co-Design)场景,提供可追溯的版本管理和故障恢复方案,帮助工程师避免常见位号陷阱,确保设计文件一致性。

weixin_30613433的博客 442

第二篇 【ArcGIS Javascript API应用系列二】使用ArcGIS Server Manager创建Map Cache地图服务...

         创建ArcGIS Server相关的地图应用,需要创建地图服务(Map Service),关于地图的创建在这里不做介绍,相信有过GIS开发的人员应该都知道如何去创建或者获取地图。在这里假定已经有了发布地图服务所需要的MXD文件。    另外,如果想使用ArcGIS Server发布地图服务,当然需要安装ArcGIS Server了,关于ArcGIS Server的安装比较...

ustcfxx的专栏 236

智能车竞赛飞檐走壁组赛道制作全攻略:从电磁线铺设到立体元素搭建

本文提供了智能车竞赛飞檐走壁组赛道制作的完整指南。从电磁线选材、电流控制与精准铺设等基础入手,详细解析了垂直墙面、圆筒、跷跷板等核心立体元素的构建技巧与过渡处理。重点分享了确保赛道稳定、符合规则且便于调试的实战经验,帮助参赛队伍搭建可靠的立体赛道,为车模算法调试奠定坚实基础。

weixin_29292535的博客 1293

【Unity】RPG2D龙城纷争(十九)流程与UI界面(终章)

本章为RPG2D系列的终章,在之前的章节中我们已经完成了游戏的所有基本功能,那么用流程与UI界面将其串联起来才是我们整个游戏原型完善的标志。

神码编程 917

ArcGIS Server切片服务高效管理指南--从缓存更新到服务迁移

本文详细介绍了ArcGIS Server切片服务的高效管理策略,涵盖缓存更新、服务器清理、服务迁移与缓存合并等核心运维场景。重点阐述了如何通过局部更新机制,仅对数据变化区域进行切片,避免全量重建,并结合热词“服务迁移”提供了完整的迁移步骤与注意事项,帮助管理员提升服务稳定性和运维效率。

desk3的博客 452

ROS从入门到精通2-1:机器人3D可视化工具——Rviz

本文详细介绍了Rviz是什么?为什么要使用这个工具?清晰地列出了Rviz的安装流程和界面的基本功能元素;讲解了Rviz基本数据类型与话题,并用两个实例深入理解Rviz数据可视化的过程

FRIGIDWINTER的博客 5349

增加切片层级

用户在A服务的切片中切了0-14级,B服务的切片为15、16两级(数据源、切片方案相同),问有没有好的方法?

豆脑的博客 1039

【python三维深度学习】python三维点云从基础到深度学习

从三维点云基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。含数据与python源码。

叶子的博客 2万+

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3753

arcgis_js入门示例一

Document               html, body, #map {         height: 100%;         width: 100%;         margin: 0;         padding: 0;       }     //require(["esri/map"]); var myMap;    functio

Programmer 832

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

第四篇 arcgis api for javascript 读取本地发布瓦片cache

学习要点 1、dojo框架类的定义与继承; 2、ArcGISTiledMapServiceLayer的使用; html页面 这是测试瓦片地图的一个类 html, body, #mapDiv { height: 90%; width: 100%; mar

尼乐 7142

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何进行影像建库及做ArcGIS Server Cache

过程描述 一、在ArcSDE数据库中创建影像数据库 1、影像存储方式的选择 ArcSDE 管理影像方式主要有连续的栅格数据集和栅格目录两种。单个栅格数据集是所有影像拼接成一个栅格,存储在数...

weixin_30561425的博客 299

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 地图分幅算法实现
下一篇: 通用的ADF编程步骤
developer2016
博客等级 码龄10年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值