`
Virgo_S
  • 浏览: 1153549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Web地图设计模式——ArcGIS Server

阅读更多
Web地图通常包含底图(提供影像和位置信息)和功能性的专题图层(包含业务信息)。例如提供实时交通信息的在线地图服务,其中街道图是底图,一般情况下不会变化,可以作为其他Web地图应用的底图。交通信息是专题图层,在实时动态更新。本文描述了几种在叠加底图和专题层时常用的模式。
底图和专题层在维护和显示的策略上有很大区别。在创建Web地图时,最好的办法是将二者分开处理。底图不需要经常更新,可以事先缓存成图片存在服务器上,而专题层则需要考虑数据实时更新和加快显示速度。
将底图和专题层分离需要在ArcMap中创建至少两个地图文档(.mxd),并在ArcGIS Server中发布成独立的地图服务,最后在Web地图中成为叠加的两个地图服务层。地图服务层由于是从地图文档发布来的,所以是包含很多图层的容器。
如果你对Web地图比较陌生,可能理解起来有困难。也许你的公司只有一个包含许多许多图层的地图文档要发布,为了性能和灵活性,最好是将其拆分成目的明确的多个地图文档进行发布,然后针对不同的地图服务采用相应的策略。
显示底图的策略为了追求最快的地图显示速度,底图应该进行缓存,缓存是预先生成好的图片,当用户请求时直接从服务器读取。底图和它的缓存易于维护,因为它们通常不会变化,即使变化了,也可以更新缓存。底图通常包括影像,街道,地形或者其他为专题图层提供背景的图形(示例)。
你的底图可以来自在线的地图服务,也可以是自己的地图文档,在线的地图服务例如ArcGIS Online。通过ESRI提供的Javascript扩展,你也可以在自己的Web地图中使用Google Maps和Microsoft Virtual Earth提供的地图服务。
如果上述地图服务无法满足需求,你可以将自己的高分辨率地图通过ArcMap制作为地图文档,然后用 ArcGIS Server发布并建立缓存。建立缓存时,如果选择将所有图层融合,性能将达到最好。但发布后就无法控制单个图层的显示与隐藏了。处理这部分需要隐藏的图层,你应该将它们发布成单独的地图服务作为底图,或者,专题图层。
在建立缓存时,最佳做法是只对需要显示的区域进行缓存。默认设置下,缓存工具会对整个地图文档的全图区域建立缓存。但ArcGIS Server9.3可以通过一个矢量文件指定需要建立缓存的区域,这在地图显示区域是条带状时尤其有用,不需要为大片空白区域浪费系统资源了。
当你的系统资源更加紧张,而要建立缓存的区域非常大时,可以考虑仅在用户请求时建立缓存。更加灵活的策略是对热点区域通过指定矢量文件预先建立缓存,而其他区域在请求时建立缓存,这样只有在第一个用户访问时会感觉到显示的延迟。
当底图的数据被更改时,需要对缓存进行更新,通过只更新修改了数据的区域,可以节省系统资源。这时要注意那些被设置为请求时建立缓存的区域,它们同样需要更新。最简单的办法是删除这些图片,在请求时重新创建缓存。
还可以将建立缓存工作保存为脚本,在半夜或周末,用户访问量较少时进行,减小对网站的影响。
显示专题图层的策略
将专题图层显示为客户端图形专题图层上的图形是客户端渲染的,服务器端发回的是图形数据。当用户缩放、漫游或点击地图时,可以查看可视区域内的客户端图形,这种方式有几点好处:
保证了只加载用户需要的图形;
对图形的渲染消耗客户端的CPU,而减轻了服务器的负担;
如果数据被修改过,用户能够马上看到最新的数据;
可以将图层渲染的功能交给客户端的JavaScript,从而提供更好的符号和标注功能(示例),并且能够控制图层的隐藏。

这个例子将地块作为客户端图形叠加在底图上,并且只有在放大到一定范围后才显示,这样避免了回传大量的数据,地块没有标注,但点击后可以立即看到相应信息。
你甚至可以选择在用户点击地图前不显示图形,例如这个地图,只有在用户点击影像上的某个位置时才显示该位置的地块形状。

在客户端图形上标注是一个难题,尽管在图形上显示文字很容易实现,但没有很好的客户端标注引擎来决定文字的显示位置,避免标注信息的重叠。由于图形和属性信息都已经加载到客户端,所以响应用户鼠标点击或停放事件,在弹出的信息窗口中显示标注是一个解决之道。更高级的应用是在信息窗口中通过表格、图表或其他方式展示数据。
采用这种客户端图形的显示策略,你需要特别注意避免用户请求过多的图形。这种情况很可能使浏览器抓狂,并且占用大量的带宽。因此,你需要设计你的程序来应对这种问题。
地图服务有一个MaxRecordCount的选项,决定了每次最多请求的图形数量。默认值为500。根据需要你可以调整这个值,或者设定用户在缩放到某个比例尺时才开始请求这些图形,避免超过上限。

ArcGIS Server REST和SOAP Web服务都提供了查询地图服务的功能,通过QueryFeatures、Identify和Find操作实现。Javascript API和Web ADF框架将这些操作封装在QueryTask中。
动态地图服务
展示专题图层的第二种方式是动态地图服务。在动态地图服务中,服务器端根据请求区域绘制好地图,发送给客户端,在浏览器中叠加动态地图和缓存的地图。(译注:由于叠加时动态地图要透明,所以一般是png格式)。
这个例子展示了这种做法。
动态地图服务是处理专题图层的传统做法,这种方式加重了服务器的负担,为了提高性能,对动态地图要尽量减少显示的图层和采用尽可能简单的符号。
动态地图将当前区域内所有可见图层的数据都进行了展示,包括用户不太需要的图层。没有必要将所有这些图层都展示给用户,因此动态地图往往提供用户隐藏某些图层的功能,例如用户只关心电力网络时,对电力节点设施等图层可以隐藏,减轻服务端动态生成地图的压力。
Javascript API通过ArcGISDynamicMapServiceLayer发布动态地图,ADF通过Map Resouce发布动态服务,REST和SOAP Web服务通过ExportMapImage操作提供动态地图。

将专题图层显示为缓存的地图服务 第三种方式是将专题图层也发布为缓存的地图服务,当你的专题数据更新不是很频繁,或者更新只影响很小范围时比较适用。
这个例子是将专题图层进行缓存,然后与缓存的底图进行叠加的效果。但是这个例子同样展示了这种做法的缺点。当你在地图上缩放时,只能在几个级别上看到缓存的专题图层。因为在比例尺较大时,对专题图层的缓存要耗费相当的系统资源,而且频繁的更新数据和缓存会对程序造成较大的影响。
综观以上三种技术,可知缓存可以满足用户最苛刻的性能要求,因为浏览器只需要从服务器获取现成的图片即可。当你浏览一个缓存地图时,不需要等待地图绘制或者数据传输的过程。同时,缓存保证了最佳的制图效果,尽管制图效果在建立缓存时相当耗费服务器资源。
当你为专题图层建立缓存时,选择与底图相同的切图方案是非常必要的。切图方案设定了建立缓存的比例尺和级别,只有在底图和缓存的专题图层比例尺匹配时,才能进行叠加。相同的切图方案还包括相同的投影方式。只需要地图文档的投影相同即可,而单个图层的投影可以不同。
使用PNG 8格式的图片建立缓存是推荐的做法。PNG 24在IE6和之前版本中不能透明化。JPG则根本不提供透明,当考虑相同的切图方案时,图片的格式不必匹配,也可以进行叠加。
与缓存底图相似,对专题图层的缓存也可以脚本化和定期进行,只是比底图的更新频率更高。当第一次建立专题图层的缓存时,建议记录下所需的时间,做到心中有数。如果专题图层在较大比例尺时才进行显示,可以减少建立缓存的级别,并且采用较尽可能简单的渲染方式和标注。
Javascript API通过ArcGISTiledMapServiceLayer发布缓存后的地图服务,Web ADF使用map resource,REST 和SOAP Web 服务也提供了相应接口访问缓存后的地图服务。

http://blog.csai.cn/user1/34340/archives/2008/34344.html
分享到:
评论

相关推荐

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    1.5ArcGIS Server REST风格的Web服务 1.5.1ArcGIS S erver站点的架构 1.5.2ArcGIS Server发布的服务类型 1.5.3服务发布 1.5.4Web服务的URL及元数据 1.5.5查看地图 1.5.6使用ArcGIS Server REST风格Web服务的过程 ...

    ArcGIS for Server10.1

    同时,灵活的授权模式——工作组级与企业级——确保了软件部署的灵活性,无论是小范围部署还是大规模应用,都能找到合适的解决方案。 #### 支持的操作系统 ArcGIS for Server 10.1对操作系统平台的支持进一步拓宽...

    ArcGIS_Server经典开发模式—for_.net_Framework

    ### ArcGIS Server经典开发模式——for .NET Framework #### 标题解读: - **ArcGIS Server**:一种用于发布、管理和共享地理空间数据和服务的企业级地理信息系统平台。 - **经典开发模式**:指在此版本中所采用的...

    用 Arcgis Service 开发 WEB GIS

    本文将基于一份关于使用ArcGIS Server开发室内GIS Web应用的报告——《BCITGISFinalProjectReport》,详细介绍如何利用ArcGIS Server来构建Web GIS应用,并结合实际案例深入解析关键技术和实施步骤。 #### 二、项目...

    基于ArcGIS Server平台的WEBGIS应用研究

    研究基于JSF和ArcGIS Server技术,结合GIS理论和WebGIS关键技术,针对黑龙江省发展信息产业专项基金项目中的一个子系统——森林重大灾害智能专家系统中的森林重大灾害地理信息系统进行设计和实现。本研究旨在探索一...

    Web GIS从基础到开发实践 基于ArcGIS API for JavaScript

    1.5.2ArcGIS Server发布的服务类型 1.5.3服务发布 1.5.4Web服务的URL及元数据 1.5.5查看地图 1.5.6使用ArcGIS Server REST风格Web服务的过程 1.5.7支持的输出格式 第2章ArcGIS API for JavaScript基础 2.1ArcGIS API...

    ArcGIS Engine实现WebGIS模型架构研究

    该框架详细描述了如何利用ArcGIS Engine构建WebGIS应用,通过两种应用模式——专业地图服务应用模式和公众地图服务应用模式,验证了AEWF框架的可行性和重要特征。 ### 结论 文章最后总结了AEWF框架的学习价值和...

    arcgis api for javascript v4.17 v3.34

    这个版本的API是基于Dojo Toolkit构建的,其设计模式主要是模块化和面向对象。v3.34着重于地图服务的渲染和操作,包括图层管理、标记点的添加与编辑、地理编码以及动态图层的加载等功能。此外,它还支持各种服务端的...

    ArcGIS JavaScript API开发—初级篇

    ### ArcGIS JavaScript API 开发——初级篇 #### 一、ArcGIS JavaScript API 概述 在2011年ESRI开发者大会上,白明先生针对ArcGIS JavaScript API的基础及其应用进行了详细的讲解。ArcGIS JavaScript API是一款由...

    arcgis DESKTOP 10.3 安装教程

    - **特点介绍**:在ArcGIS 10.3版本中,Esri引入了一种全新的授权模式——以用户为中心(Named User)。这种模式更加灵活,允许组织根据实际用户需求分配许可证,而不是基于设备或位置。这种方式提高了许可证使用的...

    ArcObject10.1

    为了解决这一问题,Esri 引入了一种新的机制——Server Object Extension (SOE),这是一种能够在 ArcGIS Server 中运行的自定义组件,旨在扩展 Server 的核心功能。 ### SOE 由来 SOE 的出现主要是为了解决 ArcGIS...

    ARCINFO培训班教材

    10. **Web GIS集成**:了解如何将本地的GIS成果发布到Web端,通过ArcGIS Server创建服务,实现Web GIS的应用,让地理信息更广泛地服务于社会。 总之,《ARCINFO培训班教材》是一本全面介绍GIS桌面工具的教程,涵盖...

    2011Esri开发竞赛辅导- 桌面应用开发组

    竞赛鼓励参赛者探索和利用Esri软件的广泛功能,包括但不限于地图制作、空间分析、地理信息系统(GIS)设计等方面。这意味着参赛作品应该尽可能地涵盖Esri软件的主要特性和功能。 #### 完整性 作品需要具备一定的完整...

    上海市遥感影像云服务平台设计与实现.pdf

    在服务层,平台利用Web服务器、ArcGISServer和FTP服务器提供在线影像服务,实现了数据的在线使用和影像的动态镶嵌、实时处理及服务共享。这样,用户可以根据自己的需求访问和分析影像数据,无需担心数据格式的转换和...

    GIS初学者第二期

    - **制图步骤**:GeoMedia的制图过程包括数据准备、符号化设置、布局设计等多个环节,每个步骤都对最终的地图质量有着重要的影响。 **3. Supermap中三维立体场景的实现** - **技术背景**:Supermap是一款功能强大...

Global site tag (gtag.js) - Google Analytics