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表格汇总
服务类别 | 服务说明 |
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 © <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