zoukankan      html  css  js  c++  java
  • geoserver扫盲 openlayers相关

    转自:http://www.cnblogs.com/lzlynn/archive/2008/07/29/1255702.html

    WMS: Web Map ServiceWeb地图服务 

    l  利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作:

    n  GetCapabitities 返回服务级元数据,它是对服务信息内容和要求参数的一种描述;

    n  GetMap 返回一个地图影像,其地理空间参考和大小参数是明确定义了的;

    n  GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息

     

    WFS: Web Feature ServiceWeb要素服务)

    l  Web 地图服务返回的是图层级的地图影像,

    l  Web要素服务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGC Web要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,定义了五个操作:

    n  GetCapabilites    返回Web要素服务性能描述文档(用XML描述);

    n  DescribeFeatureType    返回描述可以提供服务的任何要素 结构的XML文档;

    n  GetFeature    一个获取要素实例的请求提供服务;

    n  Transaction    为事务请求提供服务;

    n  LockFeature    处理在一个事务期间对一个或多个要素类型实例上锁的请求。

     

    WFS-T: Web Map Service-Transactional. 允许用户以可传输的块编辑地理数据。

     

    WCSWeb Coverage ServiceWeb覆盖服务)

    Web 覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为覆盖(Coverage在网上相互交换。

    l  网络覆盖服务由三种操作组成:GetCapabilitiesGetCoverageDescribeCoverageType

    n  GetCapabilities 操作返回描述服务 和数据集的XML文档。

    n  GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。

    n  DescribeCoverageType 操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。

     

    GML: Geography Markup Language. 一种用于描述地理数据的XML

     

    OGC——Open Geospatial Consortium——开放地理信息联盟

     

    总之  GeoServer 是您需要显示地图在网页的那些工具的当中一个,用户可以缩放并且移动。可以与一些客户端联合使用,比如: MapBuilder (for web pages), UDig, GVSig,等等。对标准的使用允许信息从GeoServer 到其它地理信息可以很容易地被结合。

    如果你对GeoServer发出一个WMS请求,你就可能得到如下的一张图:

     

    查看Demo

    welcome界面中单击demo page链接,进入页面后单击WFS-T链接就可以启动一个名叫MapBuilder的基于Javascript的地图地图编辑器。启动 MapBuilder后我们可以看到一张样图,那就就从它开始吧!用其提供的工具对图进行修改。自己练习。

     

    关于geoserver开发

    geoserver只能用j2ee开发

    geoserver是符合ogc   wms/wfs/wcs标准的地图服务器,建设一套完整的webgis系统还需要客户端配合,mapbuilderopenlayers是非常好的两个选择。对于较大的项目,空间数据库也是必不可少的,geoserver支持商业的oracledb2,开源的postgismysql

    扯得更远一点,geoserver支持google   mapgoogle   earth

     

    Geotools

    外文官网 http://geotools.codehaus.org/

     

    Geotools是开源的Java代码库,在GIS中提供对地理空间数据的标准操作。简单说,它就是一个中间件,提供的功能符合OGC规范,且与GeoAPI有密切的联系。它支持的数据格式有ShapefileGMLWFSPostGISOracle SpatialArcSDEMySQLGeoMediaMapInfo等。

    利用Geotools能够实现:

    l  格网覆盖Grid coverages——栅格数据,

    l  坐标系统转换Coordinate Transformation

    l  数据渲染Renderers

    l  格式化Styling——符号化数据集等功能。

     

    WFS地址

    把下面地址中的HighwayInterchange改成自己创建的featuretype的名字,在浏览器中查看,WFSURL

     

    http://localhost:8080/geoserver/wfs?request=getfeature&service=wfs&version=1.0.0&typename=States

     

     

    下面地址的youtian改成自己的FeatureType名字,就是自己的WFS地址

     

    http://localhost:8080/geoserver/wms/kml_reflect?layers=youtian

     

     

    Openlayers dom结构

     

    OpenLayers项目分析——(一)项目介绍

    (OpenLayers JavaScript Mapping Library)

     

    (一)项目介绍

    网址:http://www.openlayers.org/

     

      OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.5 V,通过BSD License 发行。它实现访问地理空间数据的方法都符合行业标准,比如OpenGISWMSWFS规范, OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。

     

      采用OpenLayers作为客户端不存在浏览器依赖性。由于OpenLayers采用JavaScript语言实现,而应用于Web浏览器中的DOM(文档对象模型)由JavaScript实现,同时,Web浏览器(比如IEFF等)都支持DOM 

     

      OpenLayers APIs采用动态类型脚本语言JavaScript编写,实现了类似与Ajax功能的无刷新更新页面,能够带给用户丰富的桌面体验(它本身就有一个Ajax类,用于实现Ajax功能)。

     

      目前,OpenLayers所能够支持的Format有:XMLGMLGeoJSONGeoRSSJSONKMLWFSWKT(Well-Known Text)。在OPenlayers.Format名称空间下的各个类里,实现了具体读/写这些Format的解析器。

     

      OpenLayers所能够利用的地图数据资源“丰富多彩”,在这方面提供给拥护较多的选择,比如WMSWFSGoogleMapKaMapMSVirtualEarthWorldWind等等。当然,也可以用简单的图片作为源。

     

    第一次使用OpenLayers

     

      先到它的官方网站http://www.openlayers.org下载他的压缩包,解压后可以看到其中的一些目录和文件,拷贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的Scripts目录下(当然,这个只是例子,您网站的目录结构您自己说得算,只要保证OpenLayers.js/lib/img在同一目录中即可)。 然后,创建一个index.html作为查看地图的页面,导入OpenLayers.js和你将要创建的js

     

      我们以加载WMSGML文件为例。 

     

        <script src="../lib/OpenLayers.js"></script>

      <script type="text/javascript">

            var lon = 5;    //x-axis coodinate in map units

            var lat = 40;   //y-axis coordinate in map units

            var zoom = 5;   //number of zoom levels

            var map, layer;      //声明变量maplayer;等同于 var map = null; var layer = null;

     

            map = new OpenLayers.Map('map');

            //实例化一个地图类OpenLayers.Map

     

            layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",

                        "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );

            //WMS的格式实例化图层类OpenLayers.Layer

     

            map.addLayer(layer);

            map.zoomToExtent(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中的东西远不止这些,至于它的框架分析、APIs实现机制,会在后续文章中说出。写这个的过程,也是一个学习的过程,其中难免有不妥之处,热烈欢迎大家批评指正,相互交流。

  • 相关阅读:
    时间处理得到UTC时间
    java数据同步陷阱
    360公司2016笔试题
    YTU 1439: 2.4.5 Fractions to Decimals 分数化小数
    YTU 2422: C语言习题 n个数逆序
    YTU 2421: C语言习题 矩形法求定积分
    YTU 2427: C语言习题 整数排序
    YTU 2832: 使用指针访问数组元素--程序填空
    YTU 1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
    HDU 1069:Monkey and Banana
  • 原文地址:https://www.cnblogs.com/cugwx/p/3724960.html
Copyright © 2011-2022 走看看