一、 WebGis基本原理
1. WebGis特点——跟传统GIS比较(什么是网络GIS,什么是WebGis)
网络GIS:是GIS发展过程中某一时段的GIS产品与应用形式,也可以是所有GIS体系下的统称。
WebGIS:是指基于internet平台进行信息发布,数据共享,交流协作,客户端应用软件采用WWW协议,实现GIS信息的在线查询和业务处理等功能,是运行于互联网上的地理信息系统。
传统GIS的问题是:
共享性差,系统成本高,没有面向大众,集中式,软件复杂,培训成本
WebGis特点是:
面向大众,资源共享,发布速度快,范围广,维护方便,数据来源丰富、分布存储,分布式计算,系统建设投资少,操作简单,跨平台,系统安全性,
系统协同性
2. WebGis面临的问题
网络带宽限制 (速度)
多源、异构数据源的集成和互操作
复杂地理信息的查询、分析和整合
图形信息的表达
服务端跨平台的实现
3. WebGis实现技术分类
基于服务器;
基于客户机。
4. CGI格式工作原理
·Web浏览器用户发出URL及GIS数据操作请求;
·Web服务器接受请求,并通过CGI脚本,将用户的请求传送给GIS服务器;
·GIS服务器接受请求,进行GIS数据处理,将操作结果形成GIF或JPEG图像;
·最后GIS服务器将GIF或JPEG图像,通过CGI脚本、Web服务器返回给Web浏览器显示。
二、 GoogleMaps API
1. Gmap2初始化方法,经纬度对象,地图基本类型
a) Gmap2初始化方法:
创建地图实例:
var map=new Gmap2(document.getElementByID(“map_canvas”));
初始化地图:
map.SetCenter(new GlatLng(纬度,经度),缩放级别)
b) 经纬度对象:GlatLng(纬度,经度)
c) 地图基本类型:
G_normal_Map 默认视图
G_satellite_Map 显示google地球卫星图像
G_hybrid_Map 混合显示普通视图和卫星视图
2. 侦听器
·处理 Google 地图 API 中的事件的方式是使用 GEvent 名称空间中的工具函数注册事件侦听器。
·要注册以获取这些事件相关的通知,请使用静态方法 GEvent.addListener()。这种方法在指定事件发生时采用对象、待侦听事件以及回调函数。
·Gevent.addlistener(对象,待侦听事件,回调函数)
3. 信息窗(如何显示,里面的东西是什么)
·Google 地图 API 中的每个地图都可以显示类型为 GInfoWindow 的单个“信息窗口”,它在地图上方的浮动窗口中显示 HTML 内容。
·Gmap2:openInfoWindow()方法,它取一个点和一个 HTML DOM 元素作为参数。HTML DOM 元素追加到信息窗口容器中,信息窗口的头固定在给定点上。
4. 地图叠加层(作用,如何实现)
叠加层 (Overlay) 是地图上绑定到经度/纬度坐标的对象,会随您拖动或缩放地图而移动。叠加层表现为“添加”到地图上以指明点、线或区域的对象。
地图 API 有如下几种叠加层:
• 标记 (Marker):经常显示定制图标。标记是类型为 GMarker 的对象,可以使用 GIcon 类型。
• 折线 (Polyline) :线是类型为 GPolyline 的对象。
• 多边形 (Polygon)(如果是任意形状的区域)或底面叠加层 (Ground overlay)(如果是矩形区域):多边形类似于由闭环点集合组成的折线,可以是任意形状。底面叠加层通常用于直接或间接映射为地图上的图块的区域。
• 图块叠加层 (Tile overlay) :通过使用 GTileLayerOverlay 来修改自己的一组图块,或者通过使用 GMapType 创建自己的地图类型。
• 信息窗口:信息窗口会自动添加到地图,并且仅有一个类型为 GInfoWindow 的对象与一个地图关联。
每个叠加层都实现 GOverlay 接口。可以使用 GMap2.addOverlay() 方法向地图添加叠加层,使用 GMap2.removeOverlay() 方法删除叠加层。
5. 图块的三个坐标层
图块坐标;
像素坐标;
叠加层。
三、 ArcGIS Server应用
1. ArcGIS Server体系结构
①GIS服务器:宿主了所有的GIS资源。包含了两部分SOM和SOC。
②Web服务器:是运行Web应用程序或Web Service的机器。它们通过GIS服务器,并调用GIS Server的对象来实现GIS功能,然后把结果返回级客户端。
③客户端:通过HTTP方式或者局域网方式连接到ArcGIS Server的各种客户端,浏览器,C/S程序等。
④数据服务器:包含GIS Server上所发布服务的GIS资源,可以是mxd文档,geodatabase,toolbox等。
⑤管理工具:Manager和ArcCatalog是ArcGIS Server的管理工具,可以使用这两个工具来进行服务的发布,开始和停止。
⑥地图内容制作工具:Arcgis桌面软件是GIS资源的编辑和制作工具,通过ArcGIS Server发布的各种资源都可以通过ArcGis桌面软件制作。
2. 创建WebApplication的主要步骤及工具
① 利用ArcGis桌面软件制作地图数据;
② 利用管理工具,ArcCatalog或Manager发布地图服务;
③ 利用Manager创建web应用程序。
3. Caching作用,Map Service Cache类型
·ArcGIS Server在发布地图时可以使用缓存来显著提升性能。在服务端响应客户端的地图请求时,不需要动态生成地图图片,只是将储存在地图缓存中的地图切片返回给客户端。
·地图服务缓存类型:
·单个融合缓存模式:在每个比例尺下所有图层融合在一起,创建地图切片,这时融合的缓存显示为一整体图层,不允许单独设置某个图层的可见性,以及选择要素与调整注记。
·多图层缓存:在某个比例尺下为每个图层单独创建地图切片,这时客户看到的是图层集合,可以控制每个图层的可见性,注记及要素选择。
·变化的缓存数据将不会在客户端出现:数据经常发生变化的图层不应该被缓存。缓存可以根据实际需要进行更新。
4. SOM,SOC及其作用
SOM:(Server Object Manager)服务器对象管理器。管理着运行在服务器上的服务,当客户端请求一个服务时,SOM负责分配一个服务给客户端使用。
SOC; (Server Object Container)服务器对象容器。可以装在多台机器上,是服务对象的宿主。所有客户端请求通过SOM分配以后都是由SOC来负责完成的。
5. 创建Geoprocessing Service 步骤
① 创建Toolbox,用来装Geoprocessing Model。
② 设置Geoprocessing 环境;
③ 制作Geoprocessing Model;
④ 将Geoprocessing Model做为地图文档的一个工具图层;
⑤ 发布该地图文档,后生成两个服务,即map service和Geoprocessing service。
⑥ 创建一个包含Geoprocessing任务的应用程序;
⑦ 在网络地图应用程序中引用该服务。
(另一种方法是将装有Geoprocessing Model的toolbox单独发布)
6. pooled/nonpooled GIS Services的概念及作用
池化:在客户端请求间共享对象,支持无状态的交互,支持很多用户,对象在启动时初始化,使用完毕并不销毁,而可以被下一个使用。这样提高了使用效率,使性能提升。
非池化:使用的对象不能被共享,为每一个客户端创建新对象,支持有状态的交互,支持较少的用户。由于每个用户仅对自身的Edits集起作用,他人编辑时不能被见,所以Edits时需要非池化。
7. 2种GIS Server Connection方式及其应用范围(局域网,广域网)
① 局域网(local)
通过LAN(局域网)。功能要求一个本地连接:在一个网络地图应用程序中进行编辑。使用AO定制应用程序。
② 广域网(internet)
通过Web service。功能要求一个互联网连接:Web server和ASP.NET安全要素。
8. 创建Edit task的步骤
① 制作一个可以被编辑的地图文件,注意,文件中所包含的图层至少一个是ArcSDE geodatabase中的。
② 发布该地图服务,这个服务必须是非池化的,并设置哪些图层为可编辑;
③ 创建一个web地图应用,注意必须使用局域网连接GIS服务器;
④ 为该应用程序添加一个编辑任务。
四、 ArcGIS Server开发基础
1. Develop libraries(有哪些)
①Assemblies(集合):Web ADF,ArcObjects。
②COM libraries(COM库):GIS Server。
③JavaScript libraries(JavaScript库):单源,多源。
2. TaskFramwork
·包含了用于任务管理与接口显示的控件(即任务支持控件),还有一组任务控件。
·任务支持控件包括TaskManager(用于在web应用程序中组织与管理程序)与TaskResults(用于存储任务的结果)
·任务控件包括了:SearchAttributesTask、FindAdderssTask、FindPlaceTask、QueryAttributesTask、GeoprocessingTask、Editor Task。
·可在ArcGIS Server Manager中可进行配置。
3. MapResourc Manager 作用及概念
·即地图资源管理器,用来管理地图资源。
·作用:管理地图资源,将控件与数据源联系起来。
资源的定义——在TOC中命名显示的内容,打印确定的数据源。
显示设置——透明度、背景色、请求MIME数据。
4. Image blending 方式
·web层融合:将来自各个不同GIS服务器的图片,在web服务器上由web应用程序进行融合,然后将结果发送至浏览器上显示。
·浏览器端融合:将来自各个不同GIS服务器的图片,直接发送给用户,在用户的浏览器上利用应用程序本身的功能融合成一张图片。
5. DataSource
·一个数据源(DataSource)包含一系列的资源(Resource),一个资源包含一系列的功能(Functionality)
·所有的数据源都实现MapResource资源。
数据源 | 支持的数据资源 |
ArcGIS | MapResource ,GeoCodeResource, GeoprocessingResource |
ArcIMS | MapResource ,GeoCodeResource |
ArcWeb | MapResource ,GeoCodeResource |
OGC/WMS | MapResource |
Web | MapResource |
资源 | 功能 |
MapResource | IMapFunctionality,IQueryFunctionality,IMapTocFunctionlity,ITileFunctionality,IScalebarFunctionality |
GeoCodeResource | IGeoCodeFunctionality |
GeoprocessingResource | IGeoprocessingFunctionality |
(注:数据源ArcIMS 是不能实现功能ItileFunctionality的)
6. Accessing Functionality步骤
① 确认一下该功能是被支持的;
② 创建该功能
创建该功能的两种方法:A。利用WEB控件;
B.直接从数据资源处创建
7. 两类graphic layers
① ElementGraphicsLayer元素图形层:多种几何类型,每行一起存储几何和样式,简单着色,被用于选择、缓冲、显示一些新要素。
② F eatureGraphicsLayer要素图形层:单一几何类型,存储几何和属性信息,支持查询和复杂着色,用于大数目的要素分类。
·注:只能通过程序代码来创建和管理图形图层。
8. value/proxy object 概念及工作机制(SOAP API中的工作原理)
·值对象(value):存储在客户端,依赖客户端的环境;
·代理对象(proxy):也存储在客户端,它负责与服务器端远程对象的通讯。
·工作机制:代理对象根据远程对象的要求,序列化本地值对象,然后传递到服务器端,对于服务器端远程对象反序列化,在本地创建值对象。ArcGIS Server本地源利用DCOM代理,即SOAP over DOCM直接与服务器对象通讯;而ArcGIS Server远程数据源基于web服务代理,即SOAP over http与web服务端口通讯。
9. ServerContest的概念及作用
10.COM/Value object (转换)
·Value对象可以被ADF Web控件使用,但不能被AO的API直接使用。要访问细粒度的AO,即要使Value对象被AO的API使用,就必须将其转换为COM对象。(COMObjectToValueObject)
·COM对象(AO)需要转换为Value对象(ADF)才能在网页进行显示使用。Value对象是更粗粒度的对象,可以被更好地调用。(ValueObjectToCOMObject)
11.Web ADF Toolbar 类型
① Tool(工具)(需要与用户进行交互)
② Command(命令) (不需要与用户进行交互)
③ Drop-down-box(下拉框) (不需要与用户进行交互)
12.Custom Tool Callback Framework/process
客户端接受一个操作后,创建一个请求(要做什么),由客户端脚本部分产生的Java脚本进行通讯,Callback管理器执行callback,生成XMLHttpRequest对象向服务器端发送请求。服务器端的控件处理来自客户端的信息(RaiseCallbackEvent),产生并发出响应(需要做什么)给客户端(GetCallbackResult)。客户端异步获取这个结果后,先交给JavaScript来处理,然后再显示在页面上,这个时候,只需要刷新页面上的部分内容。
13.Full page postback/AJAX/Client callback
全局页面刷新,与客户端回调,都是服务器响应客户端请求,对数据进行处理后将结果返回,由浏览器刷新显示。不同的是,全局页面显示,服务器返回的是一个页面,浏览器接收整个页面结果,刷新进行整个页面的显示;而客户端回调,则是采用AJAX技术,在控件或页面类上实现IcallbackEventHandler接口,利用GetCallbackResult方法来获取服务器端的返回值,然后交给JavaScript处理,处理完后再刷新需要刷新的控件。
两种方法相比,回调的等待时间更短,更便捷,性能更好。
14.Custom Task (核心类ITask,implementing Floanting Panel Task FlwoChart)
核心类:ITask。
Task和FloantingPanelTask实现了Itask接口中的基本方法,使用时,根据需要,必须调用这两个抽象类之一。本质上,这两个抽象类是ASP.NET组合控件。