WebGIS各种术语定义以及介绍.doc_第1页
WebGIS各种术语定义以及介绍.doc_第2页
WebGIS各种术语定义以及介绍.doc_第3页
WebGIS各种术语定义以及介绍.doc_第4页
WebGIS各种术语定义以及介绍.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、jQuery(function()与(function()(jQuery)的区别1、jQuery(function();=jQuery(document).ready(function();表示在DOM加载完毕后执行了ready()方法;2、(function()(jQuery);实际上是执行()(para)匿名方法,只不过传递了jQuery对象;3、总结:3.1、jQuery(function(),用于存放操作DOM对象的代码,执行其中代码时对象已经存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数).3.2、(function()(jQuery),用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码需要小心使用。2、jQuery中的extend方法通过不同的参数实现了几种不同的继承方法:1. extend(src), 扩展jQuery静态方法.也就是说,将src对象的属性和方法逐一复制给jQuery$.extend( test:function()alert(test函数) ) 2. extend(dest,src1,src2,src3.srcN) ,合并多个对象.为jQuery.extend(css1,css2)为例,css1,css2各有一些属性(方法照样会如此处理,这里只讲属性).extend函数会把css2有而css2没有的属性加到css1中,如果css2的某个属性与css1的某个属性名称享用,就会用css2的属性去覆盖css1的同名属性。css1就是最后的整和对象。或者也可以用 :var newcss = jquery.extend(css1,css2) newcss就是合并的新对象。var newcss = jquery.extend(,css1,css2) newcss就是合并的新对象.而且没有破坏css1的结构。/用法: jQuery.extend(obj1,obj2,obj3,.) ar Css1=size: 10px,style: oblique var Css2=size: 12px,style: oblique,weight: bolder $.jQuery.extend(Css1,Css2) /结果:Css1的size属性被覆盖,而且继承了Css2的weight属性 / Css1 = size: 12px,style: oblique,weight: bolder73.extend(boolean,dest,src1,src2.),深度镶套对象新的extend()允许你更深度的合并镶套对象。下面的例子是一个很好的证明。/ 以前的 .extend() jQuery.extend( name: “John”, location: city: “Boston” , last: “Resig”, location: state: “MA” ); / 结果: / = name: “John”, last: “Resig”, location: state: “MA” / 新的更深入的 .extend() jQuery.extend( true, name: “John”, location: city: “Boston” , last: “Resig”, location: state: “MA” ); / 结果 / = name: “John”, last: “Resig”, / location: city: “Boston”, state: “MA” 1617 与其他的类库不同的是,jQuery的extend方法提供了“深层拷贝”的功能,如果你传入的第一个参数为boolean型变量,则该变量为深层拷贝的标志,第二个参数为extend方法的目标对象,其余参数为需要进行继承的“父类”。如果第一个参数的值为true(深层拷贝),并且dest和src元素都包括相同名称的对象属性,则对该对象属性的方法和属性再进行一次复制。 * 最后我们来通过分析源代码,来加深对该继承机制的理解:jQuery.extend = jQuery.fn.extend = function() / copy reference to target object var target = arguments0 | , i = 1, length = arguments.length, deep = false, options; / Handle a deep copy situation /*如果第一个参数为boolean值,则取第二个参数为目标对象*/ if ( target.constructor = Boolean ) deep = target; target = arguments1 | ; / skip the boolean and the target i = 2; / Handle case when target is a string or something (possible in deep copy) /*如果目标参数不是object或者function,那么就有可能是深度copy,*/ if ( typeof target != object & typeof target != function ) target = ; / extend jQuery itself if only one argument is passed /*如果参数长度为1,则将参数表示的对象的属性和方法复 制给jQuery本身*/ if ( length = i ) target = this; -i; for ( ; i length; i+ ) / Only deal with non-null/undefined values当参数都为非空时, if ( (options = arguments i ) != null ) / Extend the base object for ( var name in options ) var src = target name , copy = options name ; / Prevent never-ending loop /*防止死循环*/ if ( target = copy ) continue; / Recurse if were merging object values/*深度继承的实现*/ if ( deep & copy & typeof copy = object & !copy.nodeType ) target name = jQuery.extend( deep, / Never move original objects, clone them src | ( copy.length != null ? : ) , copy ); / Dont bring in undefined values /*正常情况下的继承实现*/ else if ( copy != undefined ) target name = copy; / Return the modified object return target; * 注意:在这里还有一个特殊的地方,就是在函数开头的地方有jQuery.extend = jQuery.fn.extend,而在程序的前面已经将jQtotype赋值给jQuery.fn了,所以在后面的调用中会出现 jQuery.extend()和jQuery.fn.extend()的不同调用,这两个方法调用产生的结果也不一样,jQuery.extend() 的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而 jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,这是很重要的,在jQuery.js中到处体现这一点3、OpenLayers用于WebGIS客户端的JavaScript包,是一个开源的js框架,用于在浏览器中实现地图浏览的效果和基本的zoom,pan等功能。OpenLayers支持的地图来源包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,也可以用简单的图片作为源,在这一方面OPenLayers提供了非常多的选择。OpenLayers官方网站,使用时要保证OpenLayers.js,/lib,/img在同一目录中。接下来创建一个index.html作为查看地图的页面。导入OpenLayers.js和你将要创建的js。内容需要一个div,我们给它的id起名叫做area。你有必要在写一些CSS限定#area的宽度和高度,如果乐意,加上一个border也是很不错的选择。首先要创建一个OpenLayer.Map对象的实例:var map = new OpenLayers.Map(area);其中的参数可以传id,也可以传ElementObject,当然id更加方便一些。接下来就是向地图中添加图层,通常情况下使用OpenLayers.Layer的子类来完成图层的初始化。OpenLayers提供了一下Layers的扩展:OpenLayers.Layer.Image 封装一个实际图象作为图曾内容OpenLayers.Layer.HTTPRequest OpenLayers.Layer.Grid OpenLayers.Layer.WMS OpenLayers.Layer.KaMap OpenLayers.Layer.EventPane OpenLayers.Layer.Google OpenLayers.Layer.VirtualEarth OpenLayers.Layer.Markers OpenLayers.Layer.Text OpenLayers.Layer.GeoRSS OpenLayers.Layer.Boxes OpenLayers.Layer.TMS HTTPRequest类可以接收一个动态生成的图片,你可以通过HTTPRequest类的参数向服务器发送参数Grid类是HTTPRequest类的子类,提供更加详细的方法WMS类用于连接WMS服务器以获得图象KaMap类用于连接MapServerEventPane类作为用于接收用户操作的图层Google类用于从Google获得图象,它仍然需要你从Google获得API KEY,并且includeVirtualEarth类用于操作VirtualEarth的图层Markers类用于生成接收和显示用户本地标记的图层Text类用于接收CSV文件GeoRSS类是Marker类的子类,用于封装接收GeoRSS并在图层中作出markerBoxes同样也是Marker类的子类,可以用div来做marker,而非imageTMS用于接收TMS服务器的地图创建完图层后,可以用Map的addLayer(layer)方法插入,并执行Map的zoomToMaxExtent()方法让地图合适地显示。OpenLayers还提供了丰富的Control类为地图浏览添加一些工具,继承自OpenLayers.Control类OpenLayers.Control.LayerSwitcher OpenLayers.Control.MouseDefaults OpenLayers.Control.MousePosition OpenLayers.Control.MouseToolbar OpenLayers.Control.OverviewMap OpenLayers.Control.PanZoom OpenLayers.Control.PanZoomBar OpenLayers.Control.Permalink OpenLayers.Control.Scale 这些类的实例会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。OpenLayers对常用的数据结构进行了封装OpenLayers.LonLat OpenLayers.Size OpenLayers.Pixel OpenLayers.Bounds以便于操作。此外OpenLayers.Util类可以对图片载入错误时图片框的颜色和图片框中默认的图片进行自定义,这一点是非常方便的。OpenLayers的Ajax类对创建XHR对象的过程进行了封装,可以使用它进行简单的Ajax操作4、GeoserverGeoserver是一个功能齐全,遵循OGC开放标准的开源WFS-T和WMS服务器。利用Geoserver可以把数据作为maps/images来发布(利用WMS来实现)也可以直接发布实际的数据(利用WFS来实现),同时也提供了修改,删除和新增的功能(利用WFS-T)。GeoServer, 是一个Server. 它是开源的 ,允许用户查看和编辑地理数据。这是地理信息系统(GIS) 领域。 GeoServer 是符合OGC 规范的一个全功能的WFS-T 和WMS server。GeoServer能够发布的数据类型:1、地图或影象应用WMS,2、实时数据应用WFS,3、用户更新、删除和编辑的数据应用WFS-T。GeoServer是一种提供在Web上显示地图,并且能够对其进行平移、缩放操作的工具。同时,作为服务器,它的功能一般通过与OpengLayers、Google Earth、uDig、GVSig等客户程序结合使用表现出来。它们的关系表示如图: 5、WMS: Web Map Service(Web地图服务 )利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作:GetCapabitities 返回服务级元数据,它是对服务信息内容和要求参数的一种描述; GetMap 返回一个地图影像,其地理空间参考和大小参数是明确定义了的;GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息6、WFS: Web Feature Service(Web要素服务)Web 地图服务返回的是图层级的地图影像,Web要素服务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGC Web要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,定义了五个操作:GetCapabilites 返回Web要素服务性能描述文档(用XML描述);DescribeFeatureType 返回描述可以提供服务的任何要素 结构的XML文档;GetFeature 一个获取要素实例的请求提供服务;Transaction 为事务请求提供服务;LockFeature 处理在一个事务期间对一个或多个要素类型实例上锁的请求。7、WFS-T: Web Map Service-Transactional. 允许用户以可传输的块编辑地理数据。8、WCS:Web Coverage Service(Web覆盖服务)Web 覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖(Coverage)”在网上相互交换。网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType:GetCapabilities 操作返回描述服务 和数据集的XML文档。GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。DescribeCoverageType 操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。9、GML: Geography Markup Language. 一种用于描述地理数据的XML。10、OGCOpen Geospatial Consortium开放地理信息联盟查看Demo在welcome界面中单击demo page链接,进入页面后单击WFS-T链接就可以启动一个名叫MapBuilder的基于Javascript的地图地图编辑器。启动 MapBuilder后我们可以看到一张样图,那就就从它开始吧!用其提供的工具对图进行修改。自己练习。11、Tomcat 服务器Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。12、MapServer MapServer 是一个开放源代码的开发环境,用于建立空间互联网应用。它可以作为 CGI 程序或通过 MapScript 运行。MapScript 支持数种编程语言(通过SWIG)。MapServer 由明尼苏达大学开发。它的开发最初由 NASA 支持,以使其卫星图像开放给公众13、JSP(JavaServer Pages)JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 JSP开发规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果14、Autodesk MapGuide Enterprise Autodesk MapGuide Enterprise 软件是一个强大的基于网络的数据集成和发布平台,能够帮助企业充分利用在信息、技术和人员方面的投资。Autodesk MapGuide Enterprise 支持通过或联网、内部网和外部网分发数据,让人员随时随地对地理空间信息进行互操作。作为领先的互联网解决方案,Autodesk MapGuide Enterprise 软件在性能、灵活性和部署方面均有出色表现,能为地理信息系统(GIS)、编制地图和数字设计应用提供支持。 Autodesk MapGuide Enterprise 提供了大量的工具套件、实用程序和API,可以充分满足交互式地图服务、GIS和设计数据应用的需求。15、JavaJava是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言16、PostgreSQL支持几乎所有 SQL 构件(包括子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论