ArcGIS Server的切图原理深入【转】

http://blog.newnaw.com/?p=69

GoogleMap,Virtual Earth,YahooMap等,目前所有的WebGIS都使用了缓存机制以提高地图访问速度。原理都是将地图设定为多个比例尺,对于每个比例尺提前将地图分成若干小图片,存在服务器上,客户端访问时直接获取需要的小图片拼接成地图,而不是由服务器动态创建出一幅图片来送到客户端,极大程度的提高了反问速度。好比外面卖菠萝,和自己买一整个回家吃不同,提前把一个菠萝等分成四份(js可能会分成6份),你只需买一份来吃,体积小,方便吃,而不是对着整个菠萝咬下去,弄一脸菠萝汁。
本文中来详细了解一下ArcGIS Server目前为地图服务建立缓存(切图)的原理。先来了解一个概念:
Tiling Scheme:创建地图缓存时使用的一系列参数的总称。包括比例尺级别,图片格式,图片大小等等。
Tiling Scheme Origin:是tiling scheme
grid的左上角。默认情况下就是由mxd文档使用的坐标系的原点。而切图的范围通常是mxd文档中full extent的范围,即从full
extent的左上角(map origin)到右下角。注意区分map origin与tiling scheme origin。

对于不同的地图服务(mxd文档),如果使用相同的坐标系,那么就有相同的tiling scheme origin,即使他们的full
extent不同(map origin不同),也能处于同一参考系中。如果full extent相同,则可以轻松地叠加在一起,这也是tiling
scheme origin设计的初衷。默认情况下,切图的范围是mxd文档的full extent。如果手工设置了tiling scheme
origin,那么切图的范围只能是地图范围中tiling scheme origin右下角的部分:如果tiling scheme
origin在map origin的左上角,那么切图范围还是full extent;如果tiling scheme
origin落在地图中,那么切图的范围就是从tiling scheme origin到full
extent的右下角。这也就是为什么建议通过设置特定的矩形范围(92中)或直接使用featureclass(93中)来改变切图范围,而不是利用tiling
scheme origin来限制切图范围的原因。
那么地图到底是怎么切出来的?切多少块呢?通过一个例子深入浅出吧。一个中国地图,采用了自定义的坐标系:

切图时设置如下:

看看切图完成后的文件夹结构:

在缓存目录中,首先是地图服务命名的文件夹china;之后是切图的DataFrame命名的文件夹Layers;由于采用的是fused方式,下来就是_alllayers,如果是multi-layer切图,那么就是每个图层的序号文件夹;下来就是切图设置的多个比例尺级别(Level
of
Detail,LOD),从小到大,对应前面设置的5个比例尺;一个比例尺文件夹下,是切图的“行”文件夹,命名规则是R加上8位行号(16进制),不足补0。比如图中的R0000000a,表示此比例尺中第10行(16进制中的a);每行文件夹下就是该行的所有tile文件了,命名规则是C加上8位列号(16进制),不足补0。为什么这个比例尺下(L01)中只有8,9,10,11行呢?前面说过切图的范围是full
extent,说明在该比例尺下,从tiling scheme
origin算起,中国地图的范围只占到了这几行,其余没有,不切。同理,对于上面的第九行文件夹中,只有7,8两列,其余的没有,不切。
再打开和_alllayers文件夹同级的conf.xml看看吧,里面保存了整个tiling scheme参数。

可以看出地图服务使用的坐标系信息,tile图片的DPI(96),每个tile的长度和宽度(512),以及tiling scheme origin。
现在来计算某个比例尺中,地图上一个点所在的tile图片的行列号了。比如计算L01中,乌鲁木齐市所在tile的行列号。需要收集三个信息:
1、获得乌市的地理坐标:在本地图中是x=-1341070,y=5343697;
2、获得tiling scheme:x=-35331700,y=46619300;
3、获得当前比例尺的resolution,即一个像素所占的地图单位长度:在L01比例尺上是8466.68360003387。

乌市所在的行号:(35331700-1341070)/(8466.6836*512)=7.84=8
乌市所在的列号:(46619300-5343697)/(8466.6836*512)=9.52=10
所以乌鲁木齐在切图的第二个比例尺中,处于第10行,第8列的tile。

AGS Service, ArcGIS Server

时间: 2024-10-11 10:58:26

ArcGIS Server的切图原理深入【转】的相关文章

ArcGIS Server建立缓存(切图)原理解析[图解] (转载)

GoogleMap ,VirtualEarth ,YahooMap 等,目前所有的WebGIS都使用了缓存机制 以提高地图访问速度.原理都是将地图设定为多个比例尺,对于每个比例尺提前将地图分成若干小图片,存在服务器上,客户端访问时直接获取需要的小图片拼接成地图,而不是由服务器动态创建出一幅图片来送到客户端,极大程度的提高了反问速度. 好比外面卖菠萝,和自己买一整个回家吃不同,提前把一个菠萝等分成四份(js可能会分成6份),你只需买一份来吃,体积小,方便吃,而不是对着整个菠萝咬下去,弄一脸菠萝汁.

ArcGIS Server 缓存服务切图范围

ArcGIS Server 缓存服务分为创建服务时同时自动建立缓存和创建服务后手动建立缓存两种. 相关资料: 缓存: 瓦片: 切片: 10.4帮助文档: 10.2帮助文档: http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//00540000000p000000 官方文档链接:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//00540000000p0

ArcGIS Server 10.4切片图的制作与发布

场景:有一张遥感卫星图,需要以切片图的形式发布 需要的资料:tif的格式遥感图像 发布步骤: 1.选择Service Editor-->Parameters-->Anti-Aliasing(抗锯齿)-->Anti-Aliasing-->Best 2.选择Caching-->Using tiles from a cache-->Titling Scheme-->A tiling scheme file-->自定的配置文件XML 3.ArcGIS Server缓

GIS切图性能调优

现状及目标 DellR920服务器,虚拟化VMWARE VSPHERE 5.5系统,Guest系统Windows Server 2012 R2.部署软件ARCGIS 10.影像图切图测试:原有切图耗时70小时,现在耗时17小时.依然有继续优化的空间.调试目标: 1.        验证虚拟化环境下的最佳切图参数配置,出具虚拟化环境下ArcGIS10的最佳性能配置方法. 2.        验证SSD应用的有效性,分别测试SSD SRT技术.切图缓存技术.ESXi主机缓存技术.SAS 12GB规格

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

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

ArcGIS Server常见问题及解决方案

1.是否可以在同一台计算机上安装 ArcGIS Server for the Microsoft .NET Framework 和 ArcGIS Server for the Java platform? ArcGIS Server 的 .NET 和 Java 版本可以共存于同一台计算机上.若要将两者一起安装,则需要遵循以下步骤,以确保服务器目录能够正确地映射到 IIS 或 Apache Web 服务器的虚拟目录: 安装 .NET 版本或 Java 版本的 ArcGIS Server. 使用管理

ArcGIS Server 10.0 安装及使用完整攻略

引言 ArcGIS Server 10.0在使用和安装的过程中,需要进行比较全面的学习,才能正确使用.缺乏正确的指引,用户很容易在安装及使用中遇到问题.所以笔者在此总结Server 10.0的安装及使用中需要参考的资源.提供适当的教程,并对可能出现的问题进行解释,可供一些可行的解决方案.有兴趣做好Server 10.0工作的笔者,请耐心阅读本文.笔者花了近一个星期的时间研究ArcGIS Server 10.0的使用,希望对后来者能有所帮助. 安装 Server 10.0的安装前,建议在本机安装一

【学习笔记】前端开发调试工具与PS切图技巧

[学习过程遇到疑问和延伸阅读] 1.Sublime Text 安装插件的方式 一开始以为直接安装.原来在安装丰富的插件之前,Sublime Text需要通过Package Control这个插件来管理.作为基础插件来管理其他的插件.安装成功之后在菜单栏Preferences下才会有Package Control. "Sublime Text 2 也拥有良好的扩展功能,这就是安装包(Package):通过 Sublime Package Control,安装.升级和卸载 Package 也变得轻松

【教程】发布NAServer到ArcGIS Server 10.4上[超详细]

前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(ClosestFacilityTask)和服务区(ServiceAreaTask). 而这三个分析类依赖的是ArcGIS Server上的NAServer(网络分析服务),于是 如何发布NAServer,就成了我近期的研究事宜,所幸的是,这方面的资料非常丰富. 需要注意的是: NAServer依赖于M