ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:103.22KB ,
资源ID:6787344      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6787344.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(openlayers学习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

openlayers学习.docx

1、openlayers学习geoserver扫盲 openlayers相关 WMS: Web Map Service(Web地图服务 ) 利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作: GetCapabitities 返回服务级元数据,它是对服务信息内容和要求参数的一种描述; GetMap 返回一个地图影像,其地理空间参考和大小参数是明确定义了的; GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息WFS: Web Feature Service(Web要素服务) Web 地图服务返回的是图层级的地图影像, Web要素服

2、务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGC Web要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,定义了五个操作: GetCapabilites 返回Web要素服务性能描述文档(用XML描述); DescribeFeatureType 返回描述可以提供服务的任何要素 结构的XML文档; GetFeature 一个获取要素实例的请求提供服务; Transaction 为事务请求提供服务; LockFeature 处理在一个事务期间对一个或多个要素类型实例上锁的请求。WFS-T:

3、 Web Map Service-Transactional. 允许用户以可传输的块编辑地理数据。WCS:Web Coverage Service(Web覆盖服务)Web 覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖(Coverage)”在网上相互交换。 网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType: GetCapabilities操作返回描述服务 和数据集的XML文档。 GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后

4、执行的,它使用通用的覆盖格式返回地理位置的值或属性。 DescribeCoverageType 操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。GML: Geography Markup Language. 一种用于描述地理数据的XML。OGCOpen Geospatial Consortium开放地理信息联盟总之 , GeoServer 是您需要显示地图在网页的那些工具的当中一个,用户可以缩放并且移动。可以与一些客户端联合使用,比如: MapBuilder (for web pages), UDig, GVSig,等等。 对标准的使用允许信息从GeoServer 到其它地理

5、信息可以很容易地被结合。如果你对GeoServer发出一个WMS请求,你就可能得到如下的一张图:查看Demo在welcome界面中单击demo page链接,进入页面后单击WFS-T链接就可以启动一个名叫MapBuilder的基于Javascript的地图地图编辑器。启动 MapBuilder后我们可以看到一张样图,那就就从它开始吧!用其提供的工具对图进行修改。自己练习。关于geoserver开发geoserver只能用j2ee开发geoserver是符合ogc wms/wfs/wcs标准的地图服务器,建设一套完整的webgis系统还需要客户端配合,mapbuilder和openlayers是

6、非常好的两个选择。对于较大的项目,空间数据库也是必不可少的,geoserver支持商业的oracle、db2,开源的postgis、mysql。扯得更远一点,geoserver支持google map和google earth。Geotools外文官网 http:/geotools.codehaus.org/Geotools是开源的Java代码库,在GIS中提供对地理空间数据的标准操作。简单说,它就是一个中间件,提供的功能符合OGC规范,且与GeoAPI有密切的联系。它支持的数据格式有Shapefile、GML、WFS、PostGIS、Oracle Spatial、ArcSDE、MySQL、G

7、eoMedia、MapInfo等。利用Geotools能够实现: 格网覆盖Grid coverages栅格数据, 坐标系统转换Coordinate Transformation, 数据渲染Renderers, 格式化Styling符号化数据集等功能。WFS地址把下面地址中的HighwayInterchange改成自己创建的featuretype的名字,在浏览器中查看,WFS的URL,http:/localhost:8080/geoserver/wfs?request=getfeature&service=wfs&version=1.0.0&typename=States下面地址的youtian

8、改成自己的FeatureType名字,就是自己的WFS地址http:/localhost:8080/geoserver/wms/kml_reflect?layers=youtianOpenlayers dom结构OpenLayers项目分析(一)项目介绍(OpenLayers JavaScript Mapping Library)(一)项目介绍网址:http:/www.openlayers.org/OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.5 V,通过BSD License 发行。它实现访问地理空间数据的方法都符

9、合行业标准,比如OpenGIS的WMS和WFS规范, OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。采用OpenLayers作为客户端不存在浏览器依赖性。由于OpenLayers采用JavaScript语言实现,而应用于Web浏览器中的DOM(文档对象模型)由JavaScript实现,同时,Web浏览器(比如IE,FF等)都支持DOM 。OpenLayers APIs采用动态类型脚本语言JavaScript编写,实现了类似与Ajax功能的无刷新更新页面,能够带给用户丰富的桌面体验(它本身就有一个Ajax类,用于实现Aj

10、ax功能)。目前,OpenLayers所能够支持的Format有:XML、GML、GeoJSON、GeoRSS、JSON、KML、WFS、WKT(Well-Known Text)。在OPenlayers.Format名称空间下的各个类里,实现了具体读写这些Format的解析器。OpenLayers所能够利用的地图数据资源“丰富多彩”,在这方面提供给拥护较多的选择,比如WMS、WFS、GoogleMap、KaMap、MSVirtualEarth、WorldWind等等。当然,也可以用简单的图片作为源。第一次使用OpenLayers:先到它的官方网站http:/www.openlayers.org

11、下载他的压缩包,解压后可以看到其中的一些目录和文件,拷贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的Scripts目录下(当然,这个只是例子,您网站的目录结构您自己说得算,只要保证OpenLayers.js,/lib,/img在同一目录中即可)。 然后,创建一个index.html作为查看地图的页面,导入OpenLayers.js和你将要创建的js。我们以加载WMS和GML文件为例。 var lon = 5; /x-axis coodinate in map units var lat = 40; /y-axis coordinate in map u

12、nits var zoom = 5; /number of zoom levels var map, layer; /声明变量map、layer;等同于 var map = null; var layer = null; map = new OpenLayers.Map(map); /实例化一个地图类OpenLayers.Map layer = new OpenLayers.Layer.WMS( OpenLayers WMS, layers: basic ); /以WMS的格式实例化图层类OpenLayers.Layer map.addLayer(layer); map.zoomToExten

13、t(newOpenLayers.Bounds(-3.922119,44.335327, 4.866943,49.553833);/在Map对象上加载Layer对象,并用map.zoomToExtent函数使地图合适地显示map.addLayer(new OpenLayers.Layer.GML(GML, gml/polygon.xml);/再在刚加载的WMS文件上,加载一GML文件剩下的工作就是,加上一些控件OpenLayers.Control之类的东西,比如LayerSwitcher等。它们会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。当然,Openlayers中的

14、东西远不止这些,至于它的框架分析、APIs实现机制,会在后续文章中说出。写这个的过程,也是一个学习的过程,其中难免有不妥之处,热烈欢迎大家批评指正,相互交流。OpenLayers项目分析(一)项目介绍(OpenLayers JavaScript Mapping Library)(一)项目介绍网址:http:/www.openlayers.org/OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.5 V,通过BSD License 发行。它实现访问地理空间数据的方法都符合行业标准,比如OpenGIS的WMS和WFS规范,

15、OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。采用OpenLayers作为客户端不存在浏览器依赖性。由于OpenLayers采用JavaScript语言实现,而应用于Web浏览器中的DOM(文档对象模型)由JavaScript实现,同时,Web浏览器(比如IE,FF等)都支持DOM 。OpenLayers APIs采用动态类型脚本语言JavaScript编写,实现了类似与Ajax功能的无刷新更新页面,能够带给用户丰富的桌面体验(它本身就有一个Ajax类,用于实现Ajax功能)。目前,OpenLayers所能够支持的Fo

16、rmat有:XML、GML、GeoJSON、GeoRSS、JSON、KML、WFS、WKT(Well-Known Text)。在OPenlayers.Format名称空间下的各个类里,实现了具体读写这些Format的解析器。OpenLayers所能够利用的地图数据资源“丰富多彩”,在这方面提供给拥护较多的选择,比如WMS、WFS、GoogleMap、KaMap、MSVirtualEarth、WorldWind等等。当然,也可以用简单的图片作为源。第一次使用OpenLayers:先到它的官方网站http:/www.openlayers.org下载他的压缩包,解压后可以看到其中的一些目录和文件,拷

17、贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的Scripts目录下(当然,这个只是例子,您网站的目录结构您自己说得算,只要保证OpenLayers.js,/lib,/img在同一目录中即可)。 然后,创建一个index.html作为查看地图的页面,导入OpenLayers.js和你将要创建的js。我们以加载WMS和GML文件为例。 var lon = 5; /x-axis coodinate in map units var lat = 40; /y-axis coordinate in map units var zoom = 5; /number

18、of zoom levels var map, layer; /声明变量map、layer;等同于 var map = null; var layer = null; map = new OpenLayers.Map(map); /实例化一个地图类OpenLayers.Map layer = new OpenLayers.Layer.WMS( OpenLayers WMS, layers: basic ); /以WMS的格式实例化图层类OpenLayers.Layer map.addLayer(layer); map.zoomToExtent(newOpenLayers.Bounds(-3.9

19、22119,44.335327, 4.866943,49.553833);/在Map对象上加载Layer对象,并用map.zoomToExtent函数使地图合适地显示map.addLayer(new OpenLayers.Layer.GML(GML, gml/polygon.xml);/再在刚加载的WMS文件上,加载一GML文件剩下的工作就是,加上一些控件OpenLayers.Control之类的东西,比如LayerSwitcher等。它们会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。当然,Openlayers中的东西远不止这些,至于它的框架分析、APIs实现机制,会

20、在后续文章中说出。写这个的过程,也是一个学习的过程,其中难免有不妥之处,热烈欢迎大家批评指正,相互交流。OpenLayers 项目完整分析(二)源代码总体结构分析(二)源代码总体结构分析通过前面的项目介绍,我们大概已经知道Openlayers是什么,能够做什么,有什么意义。接下来我们分析它怎么样,以及怎样实现的等问题。这个图是从它的文档上截取的,旨在从感官上认识一下OpenLayers的类。下面分别介绍(文档中的类是按字母顺序排列的,也按这个顺序说吧):我们看到在类的顶层“高高在上”的是OpenLayers,它为整个项目实现提供名称空间(JavaScript语言没有名称空间一说,但是它确实有自

21、己的机制实现类似的功能,后面会说明),它直接拥有一常量 VERSION_NUMBER,以标识版本。Ajax:顾名思义,用于实现Ajax功能,只是OpenLayers的开发者们把它单独写到一个类里了,其中用到了Prototype.js框架里的一些东西。同时,设计的时候也考虑了跨浏览器的问题。BaseTypes:这里定制了OpenLayers中用到的string,number 和 function。比如,OpenLayers. String. startsWith,用于测试一个字符串是否一以另一个字符串开头;OpenLayers. Number. limitSigDigs,用于限制整数的有效数位;

22、OpenLayers. Function.bind,用于把某一函数绑定于对象等等。Console:OpenLayers.Console,此名称空间用于调试和把错误等输出到“控制台”上,需要结合使用./Firebug/firebug.js。Control:我们通常所说的控件类,它提供各种各样的控件,比如上节中说的图层开关LayerSwitcher,编辑工具条EditingToolbar等等。加载控件的例子: class = new OpenLayers.Map(map, controls: );map.addControl(new OpenLayers.Control.PanZoomBar();

23、map.addControl(new OpenLayers.Control.MouseToolbar();Events:用于实现OpenLayers的事件机制。具体来说,OpenLayers中的事件分为两种,一种是浏览器事件,例如mouseup,mousedown之类的;另外一种是自定义的,如addLayer之类的。OpenLayers中的事件机制是非常值得我们学习的,后面将具体讨论。Feature:我们知道:Feature是geography 和attributes的集合。在OpenLayers中,特别地OpenLayers.Feature 类由一个marker 和一个lonla组成。Ope

24、nLayers. Feature.WFS与OpenLayers. Feature. Vector继承于它。Format:此类用于读写各种格式的数据,它的子类都分别创建了各个格式的解析器。这些格式有:XML、GML、GeoJSON、GeoRSS、JSON、KML、WFS、WKT(Well-Known Text)。Geometry:怎么翻译呢,几何?是对地理对象的描述。它的子类有Collection、Curve、LinearRing、LineString、 MultiLineString、MultiPoint、MultiPolygon、Point、Polygon、Rectangle、Surface

25、,正是这些类的实例,构成了我们看到的地图。需要说明的是,Surface 类暂时还没有实现。Handler:这个类用于处理序列事件,可被激活和取消。同时,它也有命名类似于浏览器事件的方法。当一个handler 被激活,处理事件的方法就会被注册到浏览器监听器listener ,以响应相应的事件;当一个handler被取消,这些方法在事件监听器中也会相应的被取消注册。Handler通过控件control被创建,而control通过icon表现。Icon:在计算机屏幕上以图标的形式呈现,有url、尺寸size和位置position个属性。一般情况,它与 OpenLayers.Marker结合应用,表现

26、为一个Marker。Layer:图层。Map:网页中动态地图。它就像容器,可向里面添加图层Layer和控件Control。实际上,单个Map是毫无意义的,正是Layer和Control成就了它。Marker:它的实例是OpenLayers.LonLat 和OpenLayers.Icon的集合。通俗一点儿说,Icon附上一定的经纬度就是Marker。Popup:地图上一个小巧的层,实现地图“开关”功能。使用例子:Class = new OpenLayers.Popup(chicken, new OpenLayers.LonLat(5,40), new OpenLayers.Size(200,20

27、0), example popup, true);map.addPopup(popup);Renderer:渲染类。在OpenLayers中,渲染功能是作为矢量图层的一个属性存在的,我们称之为渲染器,矢量图层就是通过这个渲染器提供的方法将矢量数据显示出来。以SVG和VML为例,继承关系是这样的:至于OpenLayers. Renderer. Elements为什么要存在,以及它的渲染机制,后面会说。Tile:设计这个类用于指明单个“瓦片”Tile,或者更小的分辨率。Tiles存储它们自身的信息,比如url和size等。它的类继承关系如下:Util:“跑龙套”的类。写到这里,可以看到OpenLa

28、yers 的类缠绕的挺麻烦的,接下来的文章将从代码部分分析更细部的东西。OpenLayers 项目分析(三)BaseTypes(三)BaseTypes :定义底层类与定制JS内置类 先说基类型BaseTypes下,OpenLyers构建的“自己”的类。它们分别是:OpenLayers. LonLat、OpenLayers. Pixel、OpenLayers.Size、OpenLayers. Element、OpenLayers. Bounds和OpenLayers. Class。下面分别介绍:OpenLayers. LonLat:经纬度类,其实例为地图提供一经度、纬度对,即位置。有两个属性lon(x-axis coodinate )和lat(y-axis coordinate )。这里说明一下,怎么经纬度又与x轴坐标、y轴坐标纠缠在一起?是这样:当地图是在地理坐标投影下,它就是经纬度;不然就是地图上的xy轴坐标。除构造函数外,实现了五个函数:toShortString:function()把坐标转换为字符串;clone:function()复制一个LonLat对象;Add:function(lon,lat)改变现有地图的位置;return new OpenLayers.LonL

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1