城市建设系 地理信息系统专业课程 第三章 WebGIS的基本原理 课时:6学时
内容导航 1 WebGIS的信息内容构建 2 WebGIS的应用模式 3 实现WebGIS的基本方式 4 WebGIS空间数据组织
重点难点 重点: 难点: 实现WebGIS的基本方式 WebGIS空间数据特点,超地图模型,XML,基于GML的异构WebGIS空间数据组织 超地图模型的理解 分布式超地图模型 XML的可扩展性的理解
WebGIS发展简史 第一个分布式地理信息应用系统原型——Xerox Map Server 1993年11月 挪威Tromso大学在本国建立了地图Web服务器 1994年1月 虚拟旅行者在Web上出现 1994年 NSDI、UCSB 1995年 活动制图引擎机出现 1996年 进入因特网时代 1997年 DGI和Web GIS出现 1998年 因特网地理信息系统出现 1999年 组件式因特网地理信息系统开始研究
一 WebGIS的信息内容构建 1、信息组织 2、信息交换 空间信息组织方式: (1)一次传输整个数据文件 (2)一次仅传输数据文件中需要的部分 (3)以图像方式传输空间数据 2、信息交换 实现信息交换的条件: (1)需要协议,包括请求和应答两部分 (2)协议的内容反映系统所需要完成的功能和控制过程 WebGIS 功能主要分为:数据请求、信息查询、分析、制图、帮助、控制、元数据请求
一 WebGIS的信息内容构建 3 信息的表达 4 综合分析 涉及信息表达的问题: (1)操作界面的组织 (2)空间信息的表达方式 具备空间查询和空间分析能力,对空间和属性数据进行复杂的处理
一 WebGIS的信息内容构建 5 数据安全 6 开放性 数据安全和用户管理方面采取的策略: (1)数据库访问控制 (2)用户注册与认证 (3)加密策略 6 开放性 在以下几方面体现: (1)网络的可维护性 (2)动态集成用户分析模型的能力 (3)接受多种数据格式的能力 (4)与其他系统集成的能力
二、 WebGIS 的应用模式 可分为4个层面的应用: (1)空间数据发布 (2)空间查询检索 (3)空间模型服务 (4)Web资源的组织
1、原始数据下载 原理: Web浏览器发出URL请求,Web服务器接到URL请求后,将服务器磁盘上的数据文件通过Inernet传送到Web浏览器,Web浏览器在本地保存数据文件 缺点:无法在线浏览,GIS软件系统必须理解数据格式
2、静态地图图像显示 将服务器上已有图像包含在HTML文档中显示 原理: 根据请求参数发送给Web浏览器所需要的地图图像文 缺点:无法定制地图图像大小 无法进行要素查询
3、 元数据查询 空间元数据发布的服务模式: 空间数据提供商通过建立自己的元数据服务器进行发布 (面对多个网址和不同的数据查询方式,不能一体化查询) 通过空间数据交换中心进行发布 (具有统一查询界面) 查询方式: 通过元数据项的值来进行查询 通过图形界面来查询
3、 元数据查询 原理: Web浏览器发出标准的查询请求 Web服务器接受查询请求,并将其转给服务器,服务器接受来自Web服务器Java Applet浏览器的查询请求后,启动数据库的元数据库,处理查询请求获得元数据结果,以HTML或元数据形式传给服务器
4、动态地图浏览 产生交互式地图图像的一种方式 静态图像显示服务仅供使用者查看地图 动态地图浏览可以使用地图为用户提供信息导航,其图像是使用过程中临时生成的 原理: Web浏览器发出URL请求给Web服务器, Web服务器根据URL请求及相应参数,启动地图生成器、GIS接口程序,GIS软件或制图脚本,临时生成地图图像,传给Web浏览器显示
5、数据预处理 在数据传输之前对原始数据进行预处理使数据格式、 投影、坐标系与客户机GIS软件的要求一致,可直接 在客户机端使用。 预处理包括:格式变换、数据的投影变换、坐标系统变换
6、数字区域空间信息管理与发布 数字区域空间信息管理与分发系统(SIMD)是一个综合性的基础地理信息管理与分发系统,将MIS与GIS结合,实现多比例尺、多数据源、分布式、多时态、多种数据格式基础地理信息的管理和分发 业务流程见P48,图3.4
三、实现WebGIS的基本方式 1、基于CGI方式 通用网关接口是Web服务器调用外部应用程序的标准 接口,其功能就是在超文本文件和服务器主机应用程 序间传递信息 CGI程序语言:Visual Basic、C、Shell、Fortran等 UNIX:cgi-bin;Windows:cgi-win 例子:Yahoo!Map、MapObject and ArcViewer IMS
基于CGI方式 地图操作请求 HTTP请求 CGI Script 浏览器 Web服务器 返回地图“快照” GIS服务器 CGI方式工作原理图 返回结果 (GIF/JPG) 地图图像 返回地图“快照” GIS服务器 CGI方式工作原理图 Server API 和 Java Servlet:均比CGI效率高 CGI可以独立运行, Server API 依附于特定Web服务器,没有统一的标准 Servlet是Java开发的面向Web服务器的小应用程序
基于CGI方式 基于CGI方式的WebGIS特点: 优点: “瘦”客户端,多种操作系统的Web服务器支持,有跨平台能力 缺点: (1)增加了网络传输的负担 (2)服务器的负担重 (3)同步多请求问题 (4)静态图像 (5)用户界面的功能受Web浏览器的限制,影响GIS资源的有效使用
2、基于Plug-in方式 由NetScape提出的标准,是一种接入浏览器程序的动态连接库(DLL), Plug-in将大部分负荷加在浏览器程序,使浏览器能正确的浏览很多数据类型 Netscape <EMBED> 如: SVG显示也需要使用Adobe SVG Viewer浏览器插件才能显示
2、基于Plug-in方式 Web服务器 GIS数据库 Web浏览器 查找相关的 Plug-in Plug-in显示 GIS数据 要求加载 找到 没有找到 GIS数据类型理解 HTTP请求 基于Plug-in方式的WebGIS体系结构
2、基于Plug-in方式 基于Plug-in的WebGIS特点: 优点:(1)无缝支持与GIS数据的连接 缺点: (2)GIS操作速度快 (3)服务器和网络传输的负担轻 缺点: (1)GIS Plug-in与平台相关 (2)与数据类型相关 (3)需要事先安装 (4)更新困难 (5)使用已有的GIS操作分析资源的能力弱,处理GIS分析能力有限 举例:AutoDesk 的 MapGuide
3、基于ActiveX方式 原理: (1)是Microsoft为适应因特网而发展的标准,建立在OLE的标准下,为扩展IE功能而提供的公共框架 (2)与Plug-in的区别在于ActiveX能被支持OLE标准的任何程序语言或应用系统所用 (3)浏览器通过Object标记来定位ActiveX控件(.ole或.ocx) 在因特网上第一次浏览含有该控件的网页时,浏览器会自动下载该控件在本机安装,以后再浏览该网页时,就不用下载了。并且经过用户的同意及确认才能安装 Eg:VirtualEarth中切换到3D视图时,需下载VirtualEarth 3D的插件方可进行3D视图浏览
3、基于ActiveX方式 基于GIS ActiveX方式的WebGIS体系结构 浏览器 HTTP请求 页面信息和控件(第一次)
3、基于ActiveX方式 基于ActiveX方式的WebGIS特点: (1)具有GIS Plug-in模式的所有优点 (2)能被支持OLE标准的任何程序语言或应用系统所用 缺点: (1)需要下载,占用客户端机器的磁盘空间 (2)与平台相关 (3)与浏览器相关 (4)使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限 (5)存在信息安全隐患 例子:intergraph 的GeoMedia WebMap
4、基于Java Applet方式 1、Java Applet的原理 Applet每次随网页一起被加载到客户端,然后浏览器调用Java虚拟机来执行 Applet程序;在网页中,通过<Applet>来标记Java的小应用程序。
2、基于Java Applet方式的Web GIS工作原理 浏览器 HTTP请求 Web服务器 Java Applet 页面信息和Java Applet GIS数据请求和响应 基于Java Applet方式的WebGIS体系结构
4、基于Java Applet方式 基于Java Applet方式的WebGIS特点: 优点: (1)体系结构中立,与平台和操作系统无关,在具有Java虚拟机的Web浏览器上运行。写一次可到处运行。 (2)动态运行,无须在客户端预先安装,适时更新 (3)GIS操作速度快 (4)服务器和网络传输的负担轻 缺点: (1)使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限 (2)GIS数据的保存、分析结果的存储和网络资源的使用能力有限 例子:ActiveMaps,BigBook
5、几种方式比较 执行能力: 客户端:CGI 好,其他三种较慢,而三种中Plug-in启动时间长 服务器端:CGI 负担很重,其他负担很轻 网络:CGI 负担重,其他轻,Java Applet容易在网络上传输 总体看:CGI执行能力一般,其他执行好, Java Applet和 ActiveX可以具有很好的执行能力 相互作用能力: CGI客户端依赖于HTML,用户界面差,GIS功能支持能力受限,不具有本地数据支持能力 其他三种,具有很好用户界面和GIS功能支持能力,除开Java Applet不具有本地数据支持能力,另两种具有本地数据支持能力
5、几种方式比较 可移动性: 安全性: CGI方式、 Java Applet的客户端与平台无关,具有可移 动性。ActiveX,Plug-in方式受限 安全性: CGI方式很安全 Java Applet相对安全 ActiveX和Plug-in方式有权获得客户端的平台权限,将 给客户端系统带来威胁
四、WebGIS空间数据组织 1、 WebGIS空间数据特点 (1)具有地域分布特征(平面上或垂直方向上) (2)存储方式不同,表现出多源异质的特点 (3)中间件服务平台不同 (4)Webgis客户端不同所支持的地理信息格式也不同
2、WebGIS中地理信息空间数据服务流程 三个角色: 数据提供商, 分布式地理信息服务提供商 服务消费者 流程:下图
数据:数据提供商 E00数据 MapInfo数据 交通数据 气象数据…… 信息:GIS web服 务提供商 分布式空间数据 组织与处理 知识:服务消费者 我的位置 如何到达 统计信息 专题信息…… 分布式 地理数 据访问 转换成 消费者 能够理 解的知 识 数据应答 知识应答 数据请求 知识请求 WebGIS地理信息服务中的信息流程图
3、超地图模型 (1)超地图模型概念: 1990年,Laurini 和Millerent-Rafford 首次提出了超地图的概念 超地图:具有地理数据获取功能的多媒体超文档,单个超媒体与地图结合 。 超地图与多媒体、超文档、超媒体等的关系。 应用主要体现在空间浏览和专题浏览上。
(2)分布式超地图模型 为了解决超地图不能用于分布式地理信息服务中的数据管理、组织服务和用来表达空间信息单元的关系和操作的问题。 模型构成:由一系列包含ID、超媒体、超图形和超链接4个基本内容的空间信息对象组成。 超媒体和超图形一起组成空间信息对象的内部状态,因此可以认为空间信息对象由三部分组成: ID、内部状态和方法集合,即{ID,S,M}
那么空间对象信息的表达: 假设时间和比例尺特征相同,并且在超地图中属性由超媒体 HM集中表达,空间属性由超图形表达 OS={IDS,HM,HG,HL} ={ IDS, {IDHM ,SHM,MHM}, {IDHG ,SHG,MHG}, {IDHL ,SHL,MHL} } 此外多媒体属性(AM)又有可显示和不可显示两类,其中可 显示类里面又分数值属性和非数值属性 空间属性的表达是通过HG,超链接定义方法集合
多媒体属性AM的表达: AM ={AD{ADN, ADU },AU} AD:可显示的多媒体属性 AU:不可显示的多媒体属性
HL的内部状态的SHL的表达: SHL ={TypeID, Type, TypeFeature,AttributeFeature}
TypeID的表达: TypeID ={4D, Multiscale, Metedata,Content,Clearhousing}
TypeID的表达: Type ={DadaFile, Component,JDBC} DadaFile :直接获取远程数据文件 JDBC :启动远程JDBC服务器的服务,由JDBC服务器连接远程数据库,通过SQL语句获取数据
TypeFeature的表达: TypeFeature ={FtNext, FtPrev,FsSup, FsSub , FSQL , FCurrence , FMetadata , FContent , FClearHousing , FOther} FtNext和FtPrev:时间特征 FsSup和FsSub :多尺度特征 FSQL :SQL语句特征 FCurrence :当前值特征 FMetadata :元数据特征 FContent :数据目录特征 FClearHousing :数据仓库特征
AttributeFeature的表达: AttributeFeature ={Name, Location,Protocol} Name :说明数据文件、部件服务器、JDBC服务器的名称 Location:指示下一个超地图H所在的位置,用IP值表示 Protocol :指示链接下一个超地图H的方式
假设两个超地图是前后关系(Hi,Hj,i≠j),那么其相互关 系有以下几种: 1、部分和整体关系( ∑) Hj∑Hi :Hj为Hi的整体 2、地图概括关系( ∏ ) Hj= ∏ Hi :Hj为Hi的概括 3、时间序列关系 4、武断链接关系
超地图在WebGIS中的空间数据组织: 将不同来源的数据看成是相互独立又相互联系的超地图,因 此在我们的WebGIS中进行服务处理的表达时可以将这些服务 看成是不同类型超地图的操作过程,包括联合、交叉、差 分、投影、选择、笛卡尔积、查询、空间分析等
4、XML——可扩展的标记语言 XML定义 “Extensible Markup Language(XML)是SGML的一个子集。其目标是能够以目前HTML可能实现的方式在Web上使用、接受和处理通用SGML” ,XML的设计目标是实现简便并且能与SGML和HTML共同操作。换句话说,XML是SGML。 事实上,XML1规范宣称:“XML是SGML(Standard Generalized Markup Language(ISO 8879))的一个应用程序规范或限制形式。 通过构建,XML文档与SGML文档一致。” 是超地图模型的一种应用形式。
4、 XML——可扩展的标记语言 XML是可扩展置标语言(eXtensible Markup Language)的简称,国际组织W3C(World Wide Web Consortium)为适应WWW的应用,将SGML(Standard Generalized Markup Language)标准进行简化形成的置标语言。 它作为一种可用来制定具体应用语言的元语言,既具有强大 的描述能力,又具有适合网络应用的简洁性。 目前我国对XML的研究刚刚起步,还没有相关的XML中文标准推出。国内有影响力的XML研究机构主要有中国XML联盟(http://www.xml.org.cn)和北京大学计算机科学与技术研究所创办的中国XML论坛(http://www.xml.net.cn)。
(1)WebGIS在空间数据模型上存在的缺陷: 缺陷原因 人们对空间数据在Web上的共享及交互提出了更高的要求 社会化的呼声要求各WebGIS厂商放弃各成一家的WebGIS框架 互联网固有的缺陷使得WebGIS暴露出构建在现有Internet上的不适应
4、 XML——可扩展的标记语言 缺陷表现 HTML仅擅长数据的显示,缺乏对数据语义描述和可扩展性。对多源性、多语义性、多尺度和获取数据手段的复杂性特点的空间数据而言,HTML则显得无能为力,更不用说万维网空间数据的查询和整合了。 现有的WebGIS系统各成一家,空间数据表达和系统体系存在较大的不同,数据处理、共享等完全封闭,违背了OPEN GIS规程 HTML页面所表达的信息都是静态的,不能根据客户端的实际情况进行动态变化。从而影响了WebGIS的互操作。
4、 XML——可扩展的标记语言 缺陷表现 WebGIS的应用越来越广泛,WebGIS的终端呈现多元化。随着PDA、手机、WAP等终端WebGIS用户的出现,WebGIS必须解决同一数据的多样显示问题。 现有的WebGIS不利于空间数据的查询和定位。 空间数据的组织与管理需要数以千计的部门共同来协调,而空间元数据则是解决这一问题的关键,现存的WebGIS缺乏对元数据的有力支持。
4、 XML——可扩展的标记语言 (2)XML为WebGIS带来新的机遇 能够描述复杂的空间数据。实现地理空间数据的标准化、结构化。 链接能力的增强,使得多源数据的集成成为可能。
4、 XML——可扩展的标记语言 XML具有数据来源的多样性和多种应用的灵活性、柔韧性和适应性。 XML可以将不同来源的结构化的GIS数据进行合并、集成,客户获得XML数据后,可以开发多种形式的WebGIS应用软件,也可用于测量、制图、空间分析和地理建模等本地地理计算和二次处理,扩展XML与GIS数据的多方面应用。
4(3)、xml与html的不同(P71表3.3) 1、可扩展性:HTML格式固定,不能自定义标签类型;XML中用户能够根据需要,自行定义新的标识及属性名,以便更好地从语义上修饰数据。 2、结构性方面:XML是结构良好的文档,嵌套可以复杂到任何程度;HTML不支持深层的结构描述 3、HTML描述数据的外观,即如何显示数据;而XML描述数据本身,即着重描述Web页面的内容,易被不同程序做不同用途 4、可格式化:XML中使用XSL(Extensible Stylesheet Language)可指定如何显示数据。由于数据和显示是分离的,甚至可以为同一数据指定不同的样式表用于不同输出,并很容易在将来使用新的格式。 5、易于处理:XML对格式的定义更为严格,并具有层次结构,处理起来更加容易。它是与厂商无关的标准,可以任选一个解析器来处理。
XML设计目标 XML可在因特网上直接使用 XML将支持各种各样的应用程序 XML将于SGML兼容 编写处理XML文档的程序将十分便利 这些目标确实实现了W3C希望保留SGML精致而可伸缩的特性,同时确保软件开发人员能够在合理的时间限度内创建主要的XML工具和XML数据。
4(4)、 XML的处理接口 DOM:“随机访问”协议 SAX:事件驱动,“顺序访问”协议 定义了文档的逻辑结构以及对文件进行访问和操作的方法,DOM将一个XML文档转换成用户程序中的一个对象集合,然后就可以任意处理该对象集合 访问方便但在处理前对整个文档进行分析,占内存空间 SAX:事件驱动,“顺序访问”协议 SAX设计的目的就是提供为处理大型文档而进行优化的标准解析器接口 适合处理大型文档或与文档结构无关的任务
构建XML应用的典型步骤 选择或编写一个DTD(Document Type Definition) (或Schema)。微软提出的Biztalk就是一个运用于电子商务的XML框架,目前许多公司都提交了schema,它们一旦被验证通过,就可供人们下载使用。 生成XML文档。可以将DTD或Schema看成模板,填入需要的数据。 解析XML文档。解析是XML应用的第一步,可以选择SAX或DOM标准,目前已有各种语言的多种Parser提供。 显示XML文档。如果你的浏览器可以显示XML,那么,你可以直接将XML文档发送给浏览器,或者使用XSL将XML翻译成你的浏览器可处理的内容。如果还想作更复杂的排序和重排结构,你可以使用DOM。
带有 DTD 的 XML 文档实例 <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note>
DTD定义区: 〈. xml version="1. 0" encoding="GB2312". 〉 〈. DOCTYPE 参考资料 [ 〈 DTD定义区: 〈?xml version="1.0" encoding="GB2312" ?〉 〈!DOCTYPE 参考资料 [ 〈!ELEMENT 参考资料 (书籍?)〉 〈!ELEMENT 书籍 (名称,作者,价格)〉 〈!ELEMENT 名称 (#PCDATA)〉 〈!ELEMENT 作者 (#PCDATA)〉 〈!ELEMENT 价格 (#PCDATA)〉 〈!ATTLIST 价格 货币单位 CDATA #REQUIRED〉 ]〉
〈参考资料〉 〈书籍〉 〈名称〉XML入门精解〈/名称〉 〈作者〉张三〈/作者〉 〈价格 货币单位="人民币"〉20 〈参考资料〉 〈书籍〉 〈名称〉XML入门精解〈/名称〉 〈作者〉张三〈/作者〉 〈价格 货币单位="人民币"〉20.00〈/价格〉 〈/书籍〉 〈书籍〉 〈名称〉XML语法〈/名称〉 〈!-- 即将出版 --〉 〈作者〉李四〈/作者〉 〈价格 货币单位="人民币"〉18.00〈/价格〉 〈/书籍〉 〈/参考资料〉
4(5)、XML的主要用途及应用领域 主要用途:作为元标记语言;作为标准交换语言 应用领域: XML可广泛应用于Internet、出版业、电子商务( Biztalk )等当今热门的市场。每个行业的组织和开发人员都可用XML创建他们自己的标识语言,用于在他们各自的领域中实现信息的交互 。 W3C已经正式发布SMIL(Synchronized Multimedia Integration Language,同步多媒体集成语言)MathML(Mathematical Markup Language), 其他的一些组织也在开发各自领域的基于XML的标记语言。 开放式地理信息系统协会OGC(Open GIS Consortium也制订了用于 WebGIS的一个基于XML的语言:GML(Geographic Markup Language,地理标识语言)。
5、GML: Graphical Markup Language GML是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出。 GML已经在OGC的Web Mapping Test Bed(WMT)计划中进行了一系列的试验(1999年9月)。这些试验包括 GML地图客户端(Mapping Clients)与GML的数据服务器(Data Servers)与服务提供者(service providers)之间的交互。
OGC推出GML的目的 OGC推出GML的目的如下(1): ◆ 提供适用于Internet环境的空间信息编码方式,用于数据传输和存储; ◆ 能够扩展,用以支持对空间信息的多样化需求,不管是用于对空间信息的单纯描述,还是进行更深层次的分析使用; ◆ 以一种可扩展和标准化的方式为基于Web的GIS建立良好的基础; ◆ 允许对地理空间数据进行高效率编码;
◆ 实现空间和非空间数据的内容和表现形式的分离; ◆ 易于将空间信息和非空间信息进行整合; OGC推出GML的目的如下(2): ◆ 提供了一种容易理解的空间信息和空间关联的编码方式; ◆ 实现空间和非空间数据的内容和表现形式的分离; ◆ 易于将空间信息和非空间信息进行整合; ◆ 易于将空间几何元素与其它空间或非空间元素连结起来; ◆ 提供一系列公共地理建模对象,从而使各自独立开发的应用之间互操作成为可能。 GML为网络时代的地理空间Web领域提供了一种“开放式”的标准,它的出发点是空间数据编码,包括分布式空间数据的编码。
GML的空间信息封装性 (1)GML对地理信息的表达 GML(Geography Markup Language) 是基于XML的空间信息编码标准,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。 GML所关注的是地理数据内容的表现。GML将地理信息世界中内容及其表现形式分离开来。 当然我们也可以用GML来生成地图,这需要开发一个相应的解析工具来对GML数据进行解释。这又会违背GML对地理信息标准化以及将地理信息内容及其表现形式分离的初衷。
GML的空间信息封装性 (2)GML用文本表示地理信息 作为XML的一个具体应用,GML也是用文本的形式来进行地理信息的表示。之前,很多人认为用文本的形式来表示空间信息世界是不可行的。现在,这种方式已经得到了很多人的认可和支持。而且随着XML的应用日益广泛,GML也将受益。并且文本有其简单和易见性。容易检查和转换。
GML的空间信息封装性 (3)GML对特征几何和属性进行编码 GML是基于OGC的地理抽象模型基础之上的,即空间实体特征及属性封装。它用地理实体(又称为特征(Features))来描述世界。本质上讲特征只是一序列的属性和几何体。 地理特征包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如点、线、面、曲线、多边形等组成。目前GML主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。
GML可以对很复杂的地理实体进行编码。 如特征间的嵌套。例如飞机场由出租汽车道、飞机跑道等组成。 一个地理实体是由很多的几何元素所构成的。一个复杂的几何实体又是由很多的点、线、多边形等几何体类型所构成。一个简单的地理实体如:广播发射塔会有一个点的属性(位置)和一个区(多边形)属性(它的发射覆盖范围)。
GML实例1 <city id="001"> <名称>北京</名称> <人口>13,819,000</人口> </city> <Point> <coordibates> 116,40 </coordibates> </Point>
GML实例2 <LineString srsName="EPSG:4326"> <coordinates> 0.0,0.0 100.0,100.0 </coordinates> </LineString> <LinearRing> 100.0,0.0 50.0,100.0 </LinearRing>
<Polygon srsName="EPSG:4326"> <outerBoundaryIs> <LinearRing> <coordinates> 0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0 </coordinates> </LinearRing> </outerBoundaryIs> <innerBoundaryIs> 10.0,10.0 10.0,40.0 40.0,40.0 40.0,10.0 10.0,10.0 </innerBoundaryIs> 60.0,60.0 60.0,90.0 90.0,90.0 90.0,60.0 60.0,60.0 </Polygon>
(4)GML对空间参考系统(SRS)进行编码 地理系统(a geographic system)最主要的一部分就是通过参考系将地理特征与地球表面或者与地球表面相关的结构联系在一起。 目前的GML所采用空间参考系是可扩展的并与我们目前所使用的主要的投影类型和大地参考系是一致的。另外,GML还允许用户定义自己的单位和参考系的参数。未来的GML将可能采用更灵活的编码来处理本地坐标系统。
GML可以实现地理数据的分布式存储 GML对地理数据的分发是非常方便的技术手段,但其作用不止局限于此,同样可以成为地理数据分布式存储的重要手段。主要的技术工具是XLink和Xpointer。
GML的组成 GML目前已推出了三个版本,其中1.0版和2.0版的组成和实现方式存在较大差异,而3.0版几乎完全和2.0版兼容。 GML 1.0 GML 1.0版是基于XML DTD和RDF(Resource Description Framework) 。DTD历史悠久并被广泛采用,但是不支持类型继承、基本语义模型和名字空间。RDF则较少使用,却支持名字空间、分布式Schema的综合、类型继承和一个简单的语义模型。 GML 2.0 GML 2.0版本完全基于XML Schema。使GML技术更加灵活,越来越多的用户已开始使用GML 2.0版。
GML的组成 GML 2.0提供了以下三个基本XML Schema,任何基 于GML的应用都在这三个Schema的基础上进行扩展。 geometry.xsd 提供了详细的基本空间几何组件定义。 feature.xsd 定义了基本的地物特征/属性模型。 xlinks.xsd 提供了用于实现链接功能的XLink属性。该Schema中定义了前两个基本Schema中要用到的链接属性。通过这些链接属性,GML能够将位于不同数据源的地物特征,通过链接的方式组织在一个文件中。
GML的组成 上述三个Schema文档并不适于单独使用。它们互相配合,为GML的扩展应用提供了基本类型和结构。其中geometry.xsd和feature.xsd都属于GML名字空间(namespace),xlinks.xsd则属于XLink名字空间。 GML的三个基础Schema实际上提供了一套基础类。通过它们,用户可以声明或定义自己的类型,用以命名和区分重要的地物特征和地物集合特征。 ps:XML 架构(Schema)是一种规范,它从形式上为XML文档定义了一组数据类型基本要素和结构化组件;它就像是抽象元素、属性实体以及组织规则的一本字典。
GML的三种DTD表示(GML1.0) GML SRS DTD Profile 1 Example xml Profile 2 GML Feature DTD Application Specific Feature DTD GML Geometry DTD GML SRS Rdf Profile 3 Feature rdfs GML rdfs DTD:文档类型定义文件,它使用一系列的合法元素来定义文档结构。 Rdf:资源描述框架,一个处理元数据的XML应用
GML的三种XML schema表示(GML2.0)
GML的组成 GML 3.0 GML 3.0版是对GML 2.0版的扩充,并且向后兼容。Schema集合的组织具有了模块化特点,即用户能够有选择地使用所需部分,减化和缩小了执行的尺寸,提供了面向WEB应用、基于对象的地理数据描述语言。此外,3.0版增加了对复杂的几何实体、拓扑、空间参照系统、元数据、时间特征和动态数据等的支持,使其更加适合描述现实世界问题,如基于位置服务的行程安排和高速公路设计等。
GML3.0层次结构模型
GML的组成 GML 3.0版新增的主要特性包括: ◆ 增加了复杂的空间几何元素,如曲线、表面、实体等,允许使用几何元素集合; ◆ 增加了复杂的空间几何元素,如曲线、表面、实体等,允许使用几何元素集合; ◆ 支持拓扑的存储,可表示定向的节点、边、面和三维实体; ◆ 引入了空间参照系统,给出了描述空间系统的框架,并预定义很多公用方案; ◆ 提供建立元数据与特征(属性)间联系的易于扩充的框架机制; ◆ 增加了时间特征和描述移动物体的能力,具有标准的年、月、日、时、分、秒模式和位置、速度、方位、加速度等动态特征。
GML的扩展机制 GML作为一个“开放的”标准,并没有强制采用它的用户使用确定的XML标识,而是提供了一套基本的几何对象tag、公共的数据模型,以及采用自建和共享应用Schema的机制。所有兼容GML的系统,必须使用GML提供的几何地物tag来表示地物特征的几何属性,但可以通过限制、扩展等机制来创建自己的应用Schema。
GML描述地理现象_显示通过GML编码的数据 (1)GML Draw Display (2)GML Transform SVG, VML Draw Display 第一种途径需要直接操作GML数据进行分析并显示。 第二种途径是把GML数据转换成相应的图形格式的数据,例如SVG,VML及X3D。然后由已经存在的支持这几种图形格式的软件进行显示。
Geography Graphics GML中的地理和图形 表示真实世界的地理实体 表示真实世界的实体显示 注意:GML的特点是内容和形式分离,GML只注重地理数据内容的表达而不负责数据的图形解释,因此要在客户端将GML数据可视化,客户端需要转换GML为浏览器能够显示的格式 目前用得比较多的是在客户端使用svg显示图形
GML描述地理现象 1.The Cambridge example : <FeatureCollection typeName="CityModel"> <boundedBy> <Box srsName="EPSG:4326"> <coordinates> 0.0,0.0 100.0,100.0 </coordinates> </Box> </boundedBy> <property typeName="modelDate"> Feb 2000. </property> EPSG:它负责维护并发布坐标参照系统的数据集参数,以及坐标转换描述
GML描述地理现象 <featureMember typeName="modelMember"> <Feature typeName="River"> <name> Cam </name> <description> The river that runs through Cambridge. </description> <geometricProperty typeName="centerLineOf"> <LineString srsName="EPSG:4326"> <coordinates> 0.0,50.0 100.0,50.0 </coordinates> </LineString> </geometricProperty> </Feature> </featureMember>
基于GML的空间数据动态集成框架
基于GML的异构WebGIS空间数据组织(P75 图3.19) 客户端 GIS应用服务器 数据库服务器 GML数据 数据显示 VML、SVG、X3D等 GIS数据 GML数 据集成 GML数 据转换 原有GIS数据 库系统、文件系统、 其他数据源等 Internet Internet 空间分析 GIS的各种功能 GML数据库 GML数据 查询结果
GML可以作为应用于网络环境下的地理空间数据的通用接口,为在现有网络上以矢量方式进行传输、交换、集成WEBGIS的海量地理空间数据,提供了一种十分有效的解决途径。 (3)由于GML是由国际组织OGC提出开放标准,现已被很多大公司支持,所以易于被各种地理信息系统接受; (4)GML可以描述不同地理信息系统的数据,结构简单,且易于操作; (5)GML采用开放的基于XML的文本格式,可用web的最基本的Http协议传输,易于数据的远程动态集成; (6)GML可与非空间数据集成,GML容易进行修改,所以数据组织也相当容易。
6、其他地理数据置标语言(补充) GeoRSS :2006年7月19日,OGC KML/KMZ: GeoJSON GeoRSS GML GeoRSS Simple KML/KMZ: 2008年4月15开始,KML成为OGC标准 GeoJSON http://wiki.geojson.org/Main_Page 草案5(2008-3-13),草案6(2008-4-23)
6、其他地理数据置标语言—— GeoRSS 要引用georss和gml的命名空间: xmlns:georss=“http://www.georss.org/georss” xmlns:gml=http://www.openGIS.net/gml 进行地理编码时,包含位置的信息都放在<georss:where>标签里 可使用除lat/lon WGS84之外的数据
6、其他地理数据置标语言—— GeoRSS GeoRSS GML编码下的基本几何体表达如下: GeoRSS- GeoRSS GML ③多边形<gml:Polygon> <georss:where> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList> 45.256 -110.45 46.46 -109.48 43.84 -109.86 45.256 -110.45 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </georss:where> ①点<gml:Point> <georss:where> <gml:Point> <gml:pos> 45.256 -71.92 </gml:pos> </gml:Point> </georss:where> ②线<gml:LineString> <georss:where> <gml:LineString> <gml:posList> 45.256 -110.45 46.46 -109.48 </gml:posList> </gml:LineString> </georss:where> ④矩形框<gml:Envelope> <georss:where> <gml:Envelope> <gml:lowerCorner>42.943 -71.032</gml:lowerCorner> <gml:upperCorner>43.039 -69.856</gml:upperCorner> </gml:Envelope> </georss:where>
6、其他地理数据置标语言—— GeoRSS GeoRSS Simple编码下的基本几何体表达如下: 需要引用georss命名空间xmlns:georss=“http://www.georss.org/georss” 要求使用lat/lon WGS84数据 ①点<georss:point> <georss:point>45.256 -71.92</georss:point> ②线<georss:line> <georss:line>45.256 110.45 46.46 109.48 43.84 109.86</georss:line>
6、其他地理数据置标语言—— GeoRSS GeoRSS Simple编码下的基本几何体表达如下: ③面<georss:polygon> <georss:polygon> 45.256 110.45 46.46 109.48 43.84 109.86 </georss:polygon > ④矩形框<georss:box> <georss:box>42.943 -71.032 43.039 -69.856</georss:box>
6、地理数据置标语言—— GeoRSS 使用命名空间: GeoRSS-使用W3C geo Basic 词汇(GeoRSS官方不提倡使用) 使用命名空间: xmlns:geo=“http://www.w3.org/2003/01/geo/wgs84_pos#” 使用 <geo:long>114.43139</geo:long> <geo:lat>22.78833</geo:lat> 表达点坐标 该种方式用来表示点实体非常实用方便,虽然目前GeoRSS标准中不提倡使用该方法,但是该形式的表达还有一定的延续性。
6、其他地理数据置标语言—— KML/KMZ 与GeoRSS相比,都是XML格式的数据,KML比较 特别的功能在于可以: 可以表达高程属性,能为视图指定明确的视角 基于时间戳记的标注可以进行动态的播放; 使用网络连接可以快速简单的在多个用户间共享KML,而不用对数据本身进行分发
6、其他地理数据置标语言—— KML/KMZ ①点<Point> <Placemark> …… <Point> <coordinates> 22.0822035425683,37.42228990140251,0 </coordinates> </Point> </Placemark>
6、地理数据置标语言—— KML/KMZ ②路径<LineString> <Placemark> …… <LineString> <extrude>1</extrude> <tessellate>1</tessellate> <altitudeMode>absolute</altitudeMode> <coordinates> …… </coordinates> </LineString> </Placemark>
6、地理数据置标语言—— KML/KMZ ③多边形<Polygon> KML编码下的基本几何体表达如下: <Placemark> …… <Polygon> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <outerBoundaryIs> <LinearRing> <coordinates>……</coordinates> </LinearRing> </outerBoundaryIs> <innerBoundaryIs>……</innerBoundaryIs> </Polygon> </Placemark>
6、其他地理数据置标语言—— GeoJSON (2)通常对象包含多个成员对象(名/值对)。 (3)每个GeoJSON对象必须包含一个“type” 成员, (4)在GeoJSON格式中使用“crs”成员定义地理数据的地 理参考坐标系
6、其他地理数据置标语言—— GeoJSON ①点(“Point”) { "type": "Point", "coordinates": [100.0, 0.0] } ②线(“LineString”) { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }
6、其他地理数据置标语言—— GeoJSON ③多边形(“Polygon”) 在GeoJSON中,多边形由一个包含线坐标的数组组成, 以下是带有一个内环的多边形表达方式: { "type": "Polygon", "coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [……] ] }
6、其他地理数据置标语言—— GeoJSON ④属性(“Feature”) { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }, "properties": { "prop0": "value0", "prop1": "value1" } }
6、其他地理数据置标语言——比较 三种语言相比较: 1、GeoRSS:基于XML的格式 三大厂商的地图服务API均支持该格式,地图数据可编程转换,属性数据可使用转XML的转换方法 2、KML:基于XML的格式 GM API,VE API提供了KML的接口,并且目前已有工具能将数据直接转换成KML,如8.0 以上版本的Globe Mapper 3、GeoJSON:(JSON,javascript对象符号) Javascript类的API都支持,但是目前主流的地图制图API没有提供GeoJSON的接口,并且没有现成的格式转换工具将地图数据转换成GeoJSON
五、 WebGIS应用服务器 DCOM CORBA J2EE
五、 WebGIS应用服务器 DCOM是对组件对象模型(COM)的扩展,提供了一种使组件加入网络环境的网络协议,使用户可以将现在对基于COM的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。 Microsoft的分布式COM(DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。
五、 WebGIS应用服务器 CORBA技术 CORBA(公共对象请求代理体系结构 )是由OMG(对象管理团体)组织定义的在不同语言、不同平台上实现对象的一种面向对象应用程序的体系规范。它由标准化的定义语言、接口和协议代理组成: ORB,对象请求代理即对象总线,是CORBA的核心。它是在对象之间建立C/S关系的中间件,提供对象间信息流动所需的通路,使独立的软件单元在异构环境下无缝地交互操作。 IDL,接口定义语言,规定了组件的边界以及组件与潜在客户之间的接口。IDL是描述性的语言,它没有定义具体的实现细节。
五、 WebGIS应用服务器 CORBA技术 语言映射,负责将IDL定义的接口语言映射成具体的程序设计语言。 IR,接口存储库,是运行时的分布式数据库,包含了IDL定义接口的机器可读版本 DII,动态调用接口,用来在运行时发现将被调用的对象。 IIOP,互联网内部对象请求代理协议,定义了如何在TCP/IP传输上构建GIOP(通用ORB间协议),GIOP定义了传送语法和消息的标准集,能够在任何面向连接的传输上实现ORB间的互操作。
五、 WebGIS应用服务器 J2EE技术 J2EE是一种利用Java2平台来简化与多级企业解决方案的开发,部署和管理相关的复杂问题的体系结构。J2EE提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。 J2EE平台上的企业应用系统实际上是许多实现了企业业务逻辑和用户界面的J2EE组件的集合。 J2EE平台支持的Java组件类型主要有:Applet,Application,Client,EJB,Servlet组件,这些组件在各自的容器内运行。
五、 WebGIS应用服务器 J2EE技术 J2EE规范定义的服务接口共有4种。 数据存取接口:J2EE把JDBC作为它向应用系统提供的数据存取服务接口。 事务服务接口:用以向应用系统提供分布式事务处理服务 命名与目录服务接口:J2EE平台上的应用系统通过这个接口完成与命名与目录服务有关的标准操作,如对象命名,对象与属性的绑定与检索。 安全服务接口:应用系统通过该接口使用J2EE平台提供的各种安全服务,采用身份认证和资源授权访问模式。
五、 WebGIS应用服务器 J2EE通过提供统一的开发平台,降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成的强有力支持,完全支持EJB,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能,简化了应用开发,J2EE与传统的因特网应用程序模型相比有着不可比拟的优势,是开发WebGIS的最佳应用程序模型。
问题: JavaServlet方式和Java Applet方式有什么不同? Xml与Html的对比 GML有哪些特点?