当前位置: 首页 > news >正文

WFS-GetFeature的请求方式和ajax提交方法

版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/53301609
根据OGC标准,WFS的请求有两种方式,一种是url带参数形式,另一种是XML的请求方式。

以下是一个WFS使用KVP格式的GetFeature操作示例:

http://www.someserver.com/wfs? SERVICE=WFS& VERSION=1.1.0& REQUEST=GetFeature& PROPERTYNAME=InWaterA_1M/wkbGeom,InWaterA_1M/tileId& TYPENAME=InWaterA_1M& FILTER=<Filter><Within><PropertyName>InWaterA_1M/wkbGeom<PropertyName> <gml:Envelope><gml:lowerCorner>10,10</gml:lowerCorner> <gml:upperCorner>20 20</gml:upperCorner></gml:Envelope></Within></Filter>

以下是一个WFS使用XML格式的GetFeature操作示例:

<?xml version="1.0" ?> 
<GetFeature version="1.1.0" service="WFS" handle="Query01" 
    xmlns="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" 
    xmlns:gml="http://www.opengis.net/gml" xmlns:myns="http://www.someserver.com/myns"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.opengis.net/wfs ../wfs/1.1.0/WFS.xsd"> 
    <Query typeName="myns:Hydrography"> 
        <wfs:PropertyName>myns:geoTemp</wfs:PropertyName> 
        <wfs:PropertyName>myns:depth</wfs:PropertyName> 
        <ogc:Filter>   
            <ogc:Not> 
                <ogc:Disjoint> 
                    <ogc:PropertyName>myns:geoTemp</ogc:PropertyName> 
                    <gml:Envelope srsName="EPSG:63266405"> 
                        <gml:lowerCorner> -57.9118 46.2023 <gml:lowerCorner> 
                        <gml:upperCorner>-46.6873 51.8145</gml:upperCorner> 
                    </gml:Envelope> 
                </ogc:Disjoint> 
            </ogc:Not> 
        </ogc:Filter> 
    </Query> 
</GetFeature>

当使用XML格式请求时,特别注意使用Ajax请求时,必须要设置数据的传输采用Request Payload方式发送数据

例:

$.ajax({ 
    url: url, 
    type: "POST", 
    contentType: 'text/plain;charset=UTF-8', // 这里必须设置,否则会默认以form表单数据进行发送 
    traditional: true, 
    data: '这里是XML内容', 
    success: function(result){ 
        // 这里获取到返回的features数据 // ... 
    }
});

另外,还可以使用更新潮的fetch方式请求:

fetch(url, { 
    method: 'POST', 
    body: '这里是XML内容'
}).then(function(response) { 
    return response.json();
}).then(function(json) { 
    var features = new ol.format.GeoJSON().readFeatures(json); //...
});

有的浏览器还没有对fetch进行支持,所以可以通过 if(!self.fetch) {...} 进行判断使用。

相关文章:

  • 杂七杂八(1)——如何查看本机的.NET Framework版本
  • 根据当月数据库自动生成下个月数据库--3
  • Bootstrap3 排版-对齐
  • 用python操作mysql数据库(之简单“插入数据”操作)
  • 数学之高幂次取模
  • iOS 地图缩放级别问题
  • docker学习实践之路[第四站]利用pm2镜像部署node应用
  • 每天一个linux命令(10):cat 命令
  • [树莓派(raspberry pi)] 01、在linux环境下给树莓派安装系统及入门各种资料
  • 任何股市都受这三个因素
  • 【AngularJS入门】用ng-repeat指令实现循环输出
  • Linux下inotify监控文件夹状态,发生变化后触发rsync同步
  • 2016年开源巨献:来自百度的71款开源项目
  • 【MySQL使用技巧】JDBC连接
  • [pthon2.7+django1.2+sae]博客评论的异步提交
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 0基础学习移动端适配
  • 4. 路由到控制器 - Laravel从零开始教程
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis 中的布隆过滤器
  • vue-router 实现分析
  • 对象管理器(defineProperty)学习笔记
  • 分享几个不错的工具
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 全栈开发——Linux
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 正则表达式
  • 阿里云API、SDK和CLI应用实践方案
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (原創) 未来三学期想要修的课 (日記)
  • (转) Android中ViewStub组件使用
  • (转)平衡树
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .dwp和.webpart的区别
  • .Net core 6.0 升8.0
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net6使用WebSocket与前端进行通信
  • .netcore 获取appsettings
  • .NET程序员迈向卓越的必由之路
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @html.ActionLink的几种参数格式
  • [BZOJ3757] 苹果树
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [C# 开发技巧]实现属于自己的截图工具
  • [C++提高编程](三):STL初识
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [JS]变量