OpenLayer学习之OGC数据

一、OGC简介

    OGC是一个开源GIS公益行业协会,致力于促进采用新的技术和商业方式来提高地理信息的互操作性,OGC也推出了支持OGC规范的WebGIS产品。WebGIS 遵循OGC的规范已经成为地理信息系统的发展趋势。OGC在WebGIS 地理服务上,定义了抽象接口,其他类去继承该接口(在这里解释下接口的用处:约束,主要是为了约束,例如一个三年纪五班,这里的三年五班就是接口,班里面的每一个子类都实现三年级五班的接口,每个学生都有一个身份,三年级五班)

二、OGC服务标准

1、三大类

地图服务

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

矢量服务

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

栅格服务

Web栅格服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“栅格(Coverage)”在网上相互交换。网络栅格服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服务和数据集的XML文档。网络栅格服务中的GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的栅格格式返回地理位置的值或属性。DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一复盖层的完全描述。

2、OGC表格汇总

OGC标准
服务类别 服务说明
WMS Web地图服务,利用具有地理空间的位置信息的数据制作地图,返回的图层级的地图影像
WFS Web要素服务,返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作
WCS Web影像服务,面向空间影像数据,将这些数据在网上进行发布
WMTS 瓦片地图Web服务,该标准定义了一些操作,这些操作允许用户访问瓦片地图
WFS-G 地名地址要素服务,主要是提供地名、地址数据的查询、检索功能,遵循OGC的WFS规范
WPS Web处理服务,用于解决空间信息互操作性的空间分析等问题
CSW 目录服务,支持地理空间数据集的发布和搜索

三、在OpenLayer中OGC使用

1、WMTS:即瓦片数据服务,WMTS的GetTile接口返回的就是单张瓦片,调用与其他瓦片服务相同,可以使用ol.layer.Tile+

ol.source.WMTS加载显示。

2、WMS:地图服务,WMS的GetMap返回指定返回范围内的地图切片,使用ol.layer.Image+ol.source.ImageWMS或者使用

ol.layer.Tile+ol.source.TileWMS加载。WCS服务与WMS类似,WCS的GetCoverage接口返回指定范围的影像图片,因此WCS数据显示方法与WMS数据显示方法基本相同。

3、WFS:要素服务,WFS的GetFeature接口返回GML等格式的矢量数据,其服务调用与其他类型的矢量地图服务相同。因此,WFS的数据显示与矢量地图加载类似,可以用ol.layer.Vector+ol.source.Vector方式加载

四、OpenLayer中的ol.source.XX主要参数解释

1、ol.source.WMTS主要参数

  • url:设置WMTS服务基地址参数(url)
  • tileGrid:瓦片网格对象参数
  • projection:投影坐标系参数
  • foemat:请求EWMTS返回的瓦片图像文件格式,一般png格式

2、ol.source.ImageWMS主要参数

  • url:设置WMS服务的url地址
  • params:请求WMS服务的参数对象,与WMS的GetMap接口保持一致,设置WMS GetMap接口的各个参数项,这里LAYERS必须要要有这里请求图层名称,没有默认,其他参数可以默认
  • server Type:请求服务的类型,即提供WMS服务的服务器类型,如MapServer、GeoServer、QGIS

3、WFS数据加载主要参数

  • loader:WFS的GetFeature接口访问地址,指定服务回调方法例如:function(extent,resolution,projection){}
  • strategy:加载设置

4、ol.source.ImageWCS主要参数

  • url:基地址
  • params:GetCoverage请求的必备参数项

五、关于tileGrid对象参数一些计算

        //通过范围计算得到分辨率数组
        var projection = ol.proj.get('EPSG:3857');
        var projectionExtent = projection.getExtent();
        var size = ol.extent.getWidth(projectionExtent) / 256;
        var resolutions = new Array(14);
        var matrixIds = new Array(14);
        for (var z = 0; z < 14; ++z) {
            // generate resolutions and matrixIds arrays for this WMTS
            resolutions[z] = size / Math.pow(2, z);
            matrixIds[z] = z;
        }
        //数据源信息
        var attribution = new ol.Attribution({
            html: 'Tiles &copy; <a href="http://services.arcgisonline.com/arcgis/rest/' +
              'services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>'
        });

六、总结

OGC总而言之就一些规范,不同的GIS厂商采用相同的标准制作自己的GIS数据便于数据的融合与web GIS的加载,本文参考了郭明强的书,本文未完待续。。。。。。。

转载自:https://blog.csdn.net/weixin_40184249/article/details/80821114

You may also like...

退出移动版