zoukankan      html  css  js  c++  java
  • 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的加载,本文参考了郭明强的书,本文未完待续。。。。。。。


  • 相关阅读:
    git中Please enter a commit message to explain why this merge is necessary.
    用$(this)选择其下带有class的子元素
    将某页面中ajax中获取到的信息放置到sessionStorage中保存,并在其他页面调用这些数据。
    返回顶部黑科技
    对于div里面内容过大根据长度或者宽度进行适配,然后可以滚轮缩放的功能
    vue runtime报错问题
    webpack简单配置
    input type=color 设置颜色
    vue统一注册组件
    vue模板字符串写法
  • 原文地址:https://www.cnblogs.com/tuboshu/p/10752362.html
Copyright © 2011-2022 走看看