4.2. Web资源的类型

发布日期 : 2025-10-12 13:01:51 UTC      

访问量: 979 次浏览

包括Web内容与功能的Web资源是构建聚合的基础。 这些Web资源可划分为两大类,即有编程接口的资源和无编程接口的资源(图4. 5)。 有编程接口的资源主要包括Web服务和客户端的API,特别是浏览器端的API,这类资源比较容易被聚合。 无编程接口的资源主要是HTML文档,因需要进行较为复杂的数据提取,所以这类资源比较难以直接聚合。

Web资源按编程接口分类

Fig. 4.3 Web资源按编程接口分类 #

4.2.1. 浏览器端API #

具有浏览器端API的Web资源比较容易聚合,是目前聚合应用中最受欢迎的一类接口。 该类接口有好几种形式, 包括JavaScript API、FlexAPI、SilverlightAPI和Web微件。 JavaScript是互联网上应用最广泛的编程语言。配合像Dojo这样的工具包,JavaScript支持复杂的图形显示和用户交互(图4. 6)。 Flex和Silverlight API具有优良的图形支持、动画效果和灵活的用户交互性能,能提供良好的用户体验,特别适用于开发富互联网应用。

表4. 1比较了浏览器端的API和Web服务,前者比后者更易于使用,便于更快地构建WebGIS应用。 如图4. 7所示,Web服务的功能仅限于服务器端,而对浏览器端的用户交互任务则鞭长莫及, 无法解决诸如监测用户鼠标事件、计算地图参数、发送请求、接收响应结果、解析结果和显示地图等客户端的任务。 浏览器端的API却能胜任这些工作,它能与用户互动,当用户拖动地图时, 浏览器端的API能自动检测用户鼠标的移动,计算新的地图范围, 向后台的Web服务发出请求,收到服务器端的响应结果后,解析结果,显示地图, 而且这个过程是在用户不知不觉中完成的。 所以浏览器端的API —方面解决了与Web服务的互动,另一方面又能很方便地与用户互动。 用一个比喻:Web服务像后台的厨师,而浏览器端API就像上菜的服务员,他把你的要求转达给厨师, 再为你奉上已做好的菜肴。

很多机构通过浏览器端的API提供他们的Web资源如众所周知的谷歌公司和微软公司的街道图、影像图、地址与地点定位、路径分析等功能。 EsriArc- GIS Online提供更多样的地图和专题图。 用户还可以利用ArcGIS forServer来发布自己的地图服务或分析服务, 这些资源也自动具有浏览器端的API,可以方便地调用。

一个使用ArcGIS Online基础底图与人口数据服务的例子, 通过ArcGIS AF*IforJavaScript显示来自 美国地质调查局 的近期地震位置和等级, 并计算距离震源160km内的人口数量。(致谢:美国国家公园管理局和 美国地质调查局 )

Fig. 4.4 一个使用ArcGIS Online基础底图与人口数据服务的例子, 通过ArcGIS AF*IforJavaScript显示来自 美国地质调查局 的近期地震位置和等级, 并计算距离震源160km内的人口数量。(致谢:美国国家公园管理局和 美国地质调查局 ) #

表4.1 Web服务与浏览器端API比较

Web服务

浏览器端的API

执行位置

Web服务器

浏览器

使用语言

独立于编程语言,可使用任何语言 编写和调用

取决于特定的编程语言,JavaScript、 Flex和Silverlight API需要相应的开 发语言

性能

提供服务器端功能,能操作数据 库;不提供用户界面和用户交互功能

提供浏览器端功能,包括用户交互和鼠标控制等

关系

等待浏览器端API或其他语言调用

通常包装Web服务,特别是REST风 格的Web服务;能根据用户的交互自动地调用Web服务

浏览器端AI>I封装了 Web服务,具有与用户的交互功能,使WebGIS应用开发变得更快速和容易

Fig. 4.5 浏览器端AI>I封装了 Web服务,具有与用户的交互功能,使WebGIS应用开发变得更快速和容易 #

针对聚合设计模式中的基础底图、业务图层与任务这三个部分(见第2. 3. 3节), ArcGIS的浏览器端API提供了相对应的类。

  • 地图:对应于基础底图(有时也可用于展示可操作图层), 支持ArcGIS forServer制作的动态地图和瓦块地图、Microsoft Bing Maps、WMS、WMTS 、&&KML等。 地图类内置有鼠标与键盘事件的侦听功能,能方便地实现地图与用户之间的交互操作。

  • 图形:通常用于表达可操作图层,包括查询与分析的结果。图形是矢量的, 具有坐标和属性,能以某种符号显示,也能以小窗口或弹出窗口的形式显示详细信息,见公式(4.1)。 图形的坐标和属性被下载到浏览器端,其显示符号可以在服务器端指定(如继承该服务的MXD中的符号), 也可以由浏览器端的程序指定。浏览器端的程序可以根据单个属性或多个属性来显示图形, 如,用动画图标显示飞行中的直升机、把地震按震级分类,用饼状图显示各州各民族的百分比, 也可以把相互邻近的点综合显示为群簇,还可以用热度图表示点的分布密度(图4.8)。 图形能快捷地与用户交互,当用户鼠标扑捉或点击时,能迅速弹出信息窗口, 显示属性、图表、照片、音频、视频或HTML链接等。值得注意的是, 浏览器端能同时显示的矢量图形数量是有限的,大致在数千个左右,超过这个限制后, 浏览器的性能就降低。如果可操作图层的数据量很大, 可以采用比例尺依赖(即只在放大到一定比例尺时才显示该业务图层)或采用地图类(包括瓦块地图和动态地图)。

image50

ArcGIS浏览器端的编程接口能以多种方式显示图形

Fig. 4.6 ArcGIS浏览器端的编程接口能以多种方式显示图形 #

(A)根据某属性值进行分类, 用不同大小或不同颜色的符号来显示;(B)用饼状图显示多个属性,如各民族的人口比重; (C)把相互邻近的点显示为点簇(cluster);(D)使用热度地图表达点的密度分布。 (致谢:美国国家公园管理局、 美国地质调查局 和美国人口普查局)

浏览器端的API可以调用ArcGISServer的功能,执行多种查询与地理分析任务, 如(A)视域分析模型,计算山上某一点的可视区域;(B)空间查询,获得某个地区的人口信息, 如年龄与民族;(C)服务区分析,计算消防站或零售店的服务范围(分别计算在1、2、3分钟内所能到达区域); (D)地形剖面分析,获得沿某一直线的地表高程变化。 (致谢:AND Automotive Navigation Data,Thle Atlas North America,Inc.和美国国家公园管理局)

Fig. 4.7 浏览器端的API可以调用ArcGISServer的功能,执行多种查询与地理分析任务, 如(A)视域分析模型,计算山上某一点的可视区域;(B)空间查询,获得某个地区的人口信息, 如年龄与民族;(C)服务区分析,计算消防站或零售店的服务范围(分别计算在1、2、3分钟内所能到达区域); (D)地形剖面分析,获得沿某一直线的地表高程变化。 (致谢:AND Automotive Navigation Data,Thle Atlas North America,Inc.和美国国家公园管理局) #

  • 任务:即浏览器与后端ArcGIS Server交互,执行查询、编辑、地理编码、 路径分析和几何投影等地理处理任务(图4. 9)。

Web微件(Web widget)进一步简化了聚合应用开发。它是易于嵌入网页的短代码,它封装了若干行HTML和JavaScript代码,也有基于Flex或MicrosoftSilverlight的微件。 图4.10显示ArcGIS. com所产生的一个微件,它只有几行简单的HTML源代码, 把它嵌入到一个HTML网页中,该网页中就可以显示一个来自ArcGIS. com的地图应用。