在线编辑

使用GeoServer发布的WFS(web Feature Service)服务支持对地理要素的插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回GML(Geography Markup Language、地理标识语言)

数据。 WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

使用的接口:

GetCapabilities 返回服务级元数据

DescribeFeatureType 返回要素结构,以便客户端进行查询和其他操作。

GetFeature 可根据查询要求返回一个符合GML规范的数据文档。GetFeature是最重要的接口。

在Web上实现编辑功能,使用WFS的请求不是以SQL实现的,而是通过XML来实现,可扩展性更强。WFS所返回的是查询的结果集,WFS的结果集是由完整的Schema定义和约束的结果集,以GML为载体。

事务型WFS

WFS 规范同时定义了要素编辑的规则,这就为基于 Web 进行矢量数据编辑打开了大门。 通过 WFS 服务对源数据库中的数据进行更改称为事务性 WFS 或 WFS-T 。 一旦启用了事务功能,WFS 客户端便可使用事务性 WFS 方法对地理数据库中的数据进行更改。 MapServer 本身不支持 WFS-T , 作为套件的一部分,有 TinyOWS 可供选择。 在本书中对这部分的具体技术不多作介绍,仅在下面把概念说明一下。

TWFS操作以HTTP作为分布式计算平台,支持对地理要素的插入(INSERT)、更新(UPDATE)、 删除(DELETE)、查询(QUERY)和发现(DISCOVERY)操作。

顾名思义,WFS是通过网络操作Feature的服务。 它支持客户端对服务器的Feature执行 INSERT , UPDATE , DELETE , LOCK , QUERY ,DISCOVERY 操作。

事务是WFS的一个功能,在WFS同数据存储系统的交互中用来保证对数据的改变的一致性。 本书中事务是指由多个数据操纵操作组成的一个逻辑工作单位。 由于对地理数据永久性存储的行为不属于TWFS讨论的范围,所以这里假设没有如原子性失败等事务语义。 另外,这里也承认许多系统支持标准的、并发事务语义的事实, 因此假设一个WFS能够充分利用这些系统(如基于SQL的关系数据库系统)。

处理一个WFS请求的协议的过程如下:

1.客户请求来自WFS—份功能文档。这份文档包含WFS支持的所有操作的描述和可以服务的所有要素的列表。

2.客户(可选)向WFS请求可以服务的一个或多个要素类型的定义(文档)。

3.根据要素类型的定义,客户生成由该文档指定格式的请求。

4.请求被提交到一个Web服务器。

5.Web服务器调用WFS来接收并服务该请求。

6.当WFS完成对请求的处理,它将生成一个状态报告并返回给客户,如果发生错误,就生成异常报告。

一个事务型的WFS将支持基本WFS的所有操作,另外还将实现事务操作。 一个事务WFS可以实现可选的 Transaction 操作和 LockFeature 操作。

TWFS 对地理要素操作的主要功能包括:

创建一个新要素实例。

删除一个要素实例。

更新一个要素实例。

根据空间的或非空间条件查询要素。

发布GML

继续使用上次导入数据发布。

在select one多选框内选择发布方式为GML

接着会弹出窗口内容内容为GML。

对修改的要素提交到GeoServer进行保存,相当于重新发布

在上节的代码中继续添加

function queryWfs() {

// 重新查询更改

if (wfsVectorLayer) {

map.removeLayer(wfsVectorLayer);

}

// 创建新的图层来加载wfs的要素

wfsVectorLayer = new ol.layer.Vector({

source: new ol.source.Vector({

format: new ol.format.GeoJSON({

geometryName: 'geom' // 将shp格式矢量文件导入PostgreGIS数据库中,对应的表中增加了一个字段名为geom的字段,所有这里的名称就是数据库表中增加的那个字段名称

}),

url:'http://localhost:8080/geoserver.war/demo00/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=demo00%3Akaz_adm2_v0792&maxFeatures=50&outputFormat=gml3'//图层地址

}),

style: function(feature, resolution) {

return new ol.style.Style({

stroke: new ol.style.Stroke({

color: 'blue',

width:1

})

});

}

});

map.addLayer(wfsVectorLayer);

}

function onSave() {

//if (modifiedFeatures && modifiedFeatures.getLength() > 0) {

// 转换坐标

var modifiedFeature = modifiedFeatures.item(0).clone();

// 通过ID才能找到对应修改的feature

modifiedFeature.setId(modifiedFeatures.item(0).getId());

// 调换经纬度坐标,以符合wfs协议中经纬度的位置

modifiedFeature.getGeometry().applyTransform(function(flatCoordinates, flatCoordinates2, stride) {

for (var j = 0; j < flatCoordinates.length; j += stride) {

var y = flatCoordinates[j];

var x = flatCoordinates[j + 1];

flatCoordinates[j] = x;

flatCoordinates[j + 1] = y;

}

});

modifyWfs([modifiedFeature]);

// }

}

// 提交修改

function modifyWfs(features) {

var WFSTSerializer = new ol.format.WFS();

var featObject = WFSTSerializer.writeTransaction(null,

features, null, {

featureType: 'kaz_adm2_v0792', //图层名

featureNS: 'http://localhost:8080/demo00', // 注意这个值必须为创建工作区时的命名空间URI

srsName: 'EPSG:4326'

});

// 转换为xml内容发送到服务器端

var serializer = new XMLSerializer();

var featString = serializer.serializeToString(featObject);

var request = new XMLHttpRequest();

request.open('POST', 'http://localhost:8080/geoserver.war/demo00/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=demo00%3Akaz_adm2_v0792&maxFeatures=50&outputFormat=gml3');//URL地址

// 指定内容为xml类型

request.setRequestHeader('Content-Type', 'text/xml');

request.send(featString);

}

gis在线编辑服务器,WebGIS教程 使用Geoserver和PostGIS开发WebGIS 在线编辑相关推荐

  1. 勤哲服务器用户名在哪查看,勤哲服务器入门教程

    <勤哲服务器入门教程>由会员分享,可在线阅读,更多相关<勤哲服务器入门教程(68页珍藏版)>请在人人文库网上搜索. 1.勤哲Excel服务器入门,2,课程内容,Excel服务器 ...

  2. 如何配置在线视频服务器参数?

    建站前期,站长都需要考虑到服务器的配置问题,然而不同行业对服务器的配置要求又不尽相同,因此服务器的配置也需要根据站长从事行业的特性来预估,就拿在线视频行业来说,因为相比其他行业更在乎网站的传输率.稳定 ...

  3. 采用ASP.NET使用C#.NET语言开发的在线学生选课系统(源码+数据库+论文)

    随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨.针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程信息发布两个大方面进行了设计,基本实现了学生的在线信息查询.选课功能.教师添加课 ...

  4. 基于 SpringBoot 开发的在线短链生成系统(附源码)

    前言 分享一个基于 SpringBoot 开发的在线短链生成系统,在线短链接生成器. 完整项目源码在文章结尾处,大家自行下载即可~ 一.实现功能 1.将长链接转换成短链接,访问短链接时, 302重定向 ...

  5. gis微水在线监测服务器,GIS 微水密度在线监测技术方案.doc

    <GIS 微水密度在线监测技术方案.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<GIS 微水密度在线监测技术方案.doc>文档请在天天文库搜索 ...

  6. 开源GIS解决方案,暨GeoServer+OpenLayer结合开发总结

    http://linking123.github.io/2018/07/21/%E5%BC%80%E6%BA%90GIS%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF% ...

  7. Tableau使用教程:如何Tableau中添加离线/在线地图

    Tableau使用教程:如何Tableau中添加离线/在线地图 发布时间:2019-04-03 版权: 相关软件:BIGEMAP GIS Office软件 BIGEMAP可以提供Tableau多样化的 ...

  8. Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...

    内容概览 1.openlayers6结合geoserver利用WFS服务实现图层编辑功能 2.源代码demo下载 效果图如下: 本篇主要是参照openlayers6结合geoserver利用WFS服务 ...

  9. arcgis xml 下载 切片_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...

    内容概览 1.openlayers6结合geoserver利用WFS服务实现图层编辑功能 2.源代码demo下载 效果图如下: 本篇主要是参照openlayers6结合geoserver利用WFS服务 ...

  10. Minecraft(我的世界) Fabric 1.19.3 服务器搭建教程

    Debian系统使用MCSManager9面板搭建MC Java版MOD服务器的教程,本教程用的Fabric1.19.3服务端,用其他服务端的也可以参考一下. 视频教程:https://www.bil ...

最新文章

  1. 基于架构的上网行为管理产品界面对比
  2. Java调用net的Webservice时提示:undefined element declaration 's:schema'
  3. PHP中判断空的方法,php中类型判断和NULL,空值检查的方法
  4. vb实时错误6 溢出_java内存溢出系列(6): Out of swap space?
  5. Spring Boot笔记-新增嵌入式tomcat配置(修改tomcat中conf/server.xml)
  6. easyui datagrid 单选框 效果
  7. jQuery选择器理解
  8. 74HC20中WR讲解
  9. 【精彩文章】数学家论数学——数学的本质
  10. iPhone和ipad连接【华北理工大学】校园网快捷指令教程
  11. [RK3399][Android7.1] 调试笔记 --- Recovery模式下无法挂载/data分区
  12. springboot配置redis(单节点)
  13. android 10系统下载地址,Android 10正式版
  14. 完全模拟FIFA2014世界杯 原创求顶!
  15. ym——安卓巴士总结了近百个Android优秀开源项
  16. matlab 创建批量文件夹_PS批量处理图片技巧!
  17. 一种字符编码猜测工具的实现方法
  18. win10远程桌面连接ubuntu20(RDP)
  19. 电信大型服务器机房_国内联通、电信、移动IDC机房名录
  20. 移动游戏性能测试工具

热门文章

  1. 博客导航——一站式搜索
  2. 校园学生管理系统设想
  3. java j2se下载_J2SE基础之下载eclipse并创建项目
  4. SOLIDWORKS之VBA宏(三)
  5. Windows问题记录之任务栏图标透明
  6. 黑苹果hd3000显存3m_加装黑苹果生产力翻倍,E3 神机规模升级再战五年
  7. 模拟CMOS集成电路放大器总结(1)
  8. 通信原理电子版_2020兰州大学通信工程考研(电子信息)经验分享
  9. 富其云ERP学习笔记
  10. windowsXP操作系统的基本功能