OGC——WFS服务
一、WFS简介
OGC的WMS和WMTS规范都是有关空间数据显示的标准,而WFS(Web Feature Service)则允许用户在分布式的环境下通过HTTP对空间数据进行增、删、改、查。
具体来说,WebGIS服务器除了能够返回一张张地图图像之外,还可以返回绘制该地图图像所使用的真实地理数据。用户利用这些传输到客户端的地理数据可以进行数据渲染可视化、空间分析等操作。而前后端的这种数据交互就是基于WFS规范的。
那么也就能很清楚的说明WMS与WFS之间的区别了。WMS是由服务器将地图图像发送给客户端,而WFS是服务器将矢量数据发送给客户端。也就是在使用WMS时地图由服务器绘制,在使用WFS时地图由客户端绘制。另外最最重要的,使用WFS可以对WebGIS服务器中的地理数据(存储在空间数据库中)直接进行增、删、改、查。

二、WFS的种类与操作
WFS服务一般支持如下功能:
GetCapabilities —— 获取WFS服务的元数据(介绍服务中的要素类和支持的操作)
DescribeFeatureType —— 获取WFS服务支持的要素类的定义(要素类的元数据,比如要素包含哪些字段)
GetFeature —— 获取要素数据
GetGmlObject —— 通过XLink获取GML对象
Transaction —— 创建、更新、删除要素数据的事务操作
LockFeature —— 在事务过程中锁定要素
实际中,WebGIS服务器针对这些功能并不是必须全部实现,而是实现全部或部分。
因此,根据依据这些功能的支持与否,可以将WFS分为3类:
Basic WFS —— 必须支持GetCapabilities、DescribeFeature Type、GetFeature功能
XLink WFS —— 必须在Basic WFS基础上加上GetGmlObject操作
Transaction WFS —— 也称为WFS-T,必须在Basic WFS基础上加上Transaction功能以及支持编辑数据,另外也可以加上GetGmlObject或LockFeature功能
三、GetCapabilities(获取元数据)
GetCapabilities的KVP格式请求需要以下参数:
示例:
获取本机安装的GeoServer中WFS服务的元数据:
http://localhost:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetCapabilities
GeoServer将会返回一个XML文件(由于内容太多,这里就不列出来了),里面包含了关于这个GeoServer服务器的WFS服务的所有元数据,比如,包含哪些要素类,支持哪些操作等等。
四、DescribeFeatureType(获取要素类的元数据)
DescribeFeatureType的KVP格式请求需要以下参数:
示例:
获取本机GeoServer中guangdong:gd_roads要素类的元数据:
http://localhost:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=guangdong:gd_roads
GeoServer返回一个XML文件:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:guangdong="http://localhost:8084/geoserver/guangdong" elementFormDefault="qualified" targetNamespace="http://localhost:8084/geoserver/guangdong">
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="http://localhost:8080/geoserver/schemas/gml/3.1.1/base/gml.xsd"/>
<xsd:complexType name="gd_roadsType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="the_geom" nillable="true" type="gml:MultiLineStringPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="osm_id" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="code" nillable="true" type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="fclass" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ref" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="oneway" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="maxspeed" nillable="true" type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="layer" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="bridge" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tunnel" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="type" nillable="true" type="xsd:long"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="gd_roads" substitutionGroup="gml:_Feature" type="guangdong:gd_roadsType"/>
</xsd:schema>
其中,name就是指gd_roads要素类所具有的字段,而type就是该字段数据的数据类型。
五、GetFeature(获取要素数据)
GetFeature的KVP格式请求需要以下参数:

示例:
①返回本机GeoServer中guangdong:gd_roads要素类的要素ID为gd_roads.1的要素,返回数据格式指定为json:
http://localhost:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=guangdong:gd_roads&OUTPUTFORMAT=application/json&FEATUREID=gd_roads.1
②返回本机GeoServer的guangdong:gd_roads要素类中的10个要素,返回数据格式指定为json:
http://localhost:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=guangdong:gd_roads&OUTPUTFORMAT=application/json&MAXFEATURES=10
六、Transaction(对要素数据增、删、改)
Transaction的KVP格式请求需要以下参数:

目前Transaction的KVP格式请求只支持Delete操作(Insert和Update必须通过XML格式请求)。
示例:
删除本机GeoServer的guangdong:gd_roads要素类中的ID为gd_roads.1的要素:
http://localhost:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=Transaction&TYPENAME=guangdong:gd_roads&FEATUREID=gd_roads.1
参考链接:
OGC——WFS服务的更多相关文章
- java查询WFS服务
在我们访问wfs服务时候,有时候会遇到前台访问时候的跨域问题.这里给出java访问的一个小例子. import java.io.BufferedReader; import java.io.IOExc ...
- arcgis调用国家天地图wfs服务
1.国家天地图wfs地址 getcapabilities http://www.tianditu.com/wfssearch.shtml?request=getcapabilities&ser ...
- WFS服务查询方法
基于Geoserver发布的wfs服务,实现空间和属性信息的查询.wfs包含getFeature操作,用来检索要素信息,支持返回gml格式的地理要素表达. WFS的getFeature操作需要提供的参 ...
- cesium结合geoserver利用WFS服务实现图层新增(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)
内容概览 1.openlayers6结合geoserver利用WFS服务实现图层新增功能2.源代码demo下载 效果图如下: 本篇主要是openlayers6通过调用geoserver发布的地图服务W ...
- leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- cesium结合geoserver利用WFS服务实现图层删除(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- OpenLayers调用ArcGIS Server发布的WFS服务
OpenLayers调用ArcGIS Server发布的WFS服务 原创: 蔡建良 2013-08-20 一. 开发环境 1) Openlayers2.13+arcgis server9.3 2) W ...
随机推荐
- Mysql中常用函数 分组,连接查询
函数 在Mysql中函数是一组预定义的指令,用于执行特定的操作并返回结果,可类比Java中的方法.在SQL中函数根据其作用范围和返回结果方法分为两大类:单行函数,分组函数 单行函数 单行函数的特点为对 ...
- Ubuntu 22.04 全局快捷键失效问题
安装完 Ubuntu 22.04 后,你有可能会发现系统的快捷键失效了.侧栏用 Win + x 选中程序不可用了.为各种应用程序设置的快捷键也不起作用了. 出现此现象的原因,是因为 Ubuntu 22 ...
- 元类、实现ORM
阅读目录: 元类 元类实现ORM 元类 1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在Python中这一点仍然成立: >>> class Obj ...
- Qt Creator pro文件常见配置
HEADERS:指定项目的头文件(.h) SOURCES:指定项目的源文件(.cpp) FORMS:指定协议UIC处理的由Qt Designer生成的.ui文件 RESOURCES:指定需要rcc处理 ...
- 七、Spring Boot集成Spring Security之前后分离认证最佳实现
二.自定义用户名密码认证过滤器RestfulUsernamePasswordAuthenticationFilter 1.注册过滤器方式 使用httpSecurity.addFilter/addFil ...
- Centos模板机配置
icentos7标准化配置 挂载光盘 mkdir /media/cdrom mount /dev/sr0 /media/cdrom vi /etc/yum.repo.d/ 配置本地yum源 vim l ...
- 零基础入门Hadoop:IntelliJ IDEA远程连接服务器中Hadoop运行WordCount
今天我们来聊一聊大数据,作为一个Hadoop的新手,我也并不敢深入探讨复杂的底层原理.因此,这篇文章的重点更多是从实际操作和入门实践的角度出发,带领大家一起了解大数据应用的基本过程.我们将通过一个经典 ...
- 2023NOIP A层联测20 T3 点餐
2023NOIP A层联测20 点餐 题目很好,可惜考试没想到. 思路 可以按照 \(b\) 从小到大排序,固定选择个数 \(k\),枚举选择的盘子 \(x\) 的 \(b\) 最大,最优解肯定是贪心 ...
- 1.TP6的入门-安装
打开官网,找到这里点击手册 或者直接访问 这里 可以看到TP6已经有了赞助商 然后往后面阅读,发现他推荐我们读这个 这个入门必读还是不错的,简单的看看就行 后面就开始安装吧 首先注意自己的环境php版 ...
- Nginx服务器配置---反向代理服务时proxy_pass的转发规则
nginx是由俄罗斯开发的一款http web服务器,我们经常用这款服务器做负载均衡和反向代理.今天我们就来聊聊Nginx作为反向代理时,如何进行路由配置.假设你已经部署好Nginx了,我们进入Ngi ...