52°North是一个来自研究机构、工业界和公共行政管理界的研究者组成的开放国际合作组织,他们通过协作研发流程促进地理信息学创新。具体来说他们开发新的地理信息概念和技术,例如用于管理时空测量数据,以及通过网络共享地理处理技术。他们评估新的GIS发展趋势,如物联网、语义 Web 或链接开放数据,并在实践中尝试研究和应用这些趋势。在 52°North 研发过程中开发的所有软件均以开源许可证发布。

该组织之所以叫这个名字,是因为该组织的所在地——德国明斯特市位于北纬51°57 ' 38.394" ,东经7°37 ' 34.086" 的位置。        本节使用52°North的wps客户端来连接执行WPS服务。对于GeoTools的wps工具,试了几次都有问题,就不再浪费时间研究了。        下面新建一个项目,当然直接在上一篇调用wfs的项目上新建一个类也是一样的。        下面接是该调用wps服务的类的代码,实现了调用geoserver的buffer服务,并返回缓冲区结果。

package edu.sdau.wpsstudy;import java.io.IOException;import javax.xml.transform.TransformerException;import org.apache.xpath.XPathAPI;import org.apache.xpath.objects.XObject;import org.n52.wps.client.ExecuteRequestBuilder;import org.n52.wps.client.WPSClientException;import org.n52.wps.client.WPSClientSession;import net.opengis.wps.x100.ExecuteDocument;import net.opengis.wps.x100.ExecuteResponseDocument;import net.opengis.wps.x100.ProcessDescriptionType;import net.opengis.wps.x100.ProcessDescriptionType.DataInputs;public class ReadWps {  public static void main(String[] args) throws IOException, WPSClientException, TransformerException {        String url = "http://localhost:8080/geoserver/ows";    String processID = "JTS:buffer";    //创建连接客户端    WPSClientSession wpsClient = WPSClientSession.getInstance();    boolean connected = wpsClient.connect(url);    if (!connected) {      System.out.println("无法连接到WPS.");      return;    }    //获取所有的process名称或ID    String[] pnames = wpsClient.getProcessNames(url);    for (int i = 0; i < pnames.length; i++) {      System.out.println(pnames[i]);    }    //创建某个process的描述信息    ProcessDescriptionType processDescription = wpsClient.getProcessDescription(url, processID);    //查看某个process的数据输入信息,可以通过dt访问许多关于输入数据的信息    DataInputs dt = processDescription.getDataInputs();    //查看完整的process的xml信息。    System.out.println("该process的描述:\n" + processDescription.xmlText() + "\n");    //创建请求    ExecuteRequestBuilder executeBuilder = new ExecuteRequestBuilder(processDescription);        //增加复杂数据数据,即创建几何输入    String paramGeo = "geom";    executeBuilder.addComplexData(paramGeo, "POINT(100 100)", null, null, "application/wkt");//      String schema = "http://schemas.opengis.net/gml/3.1.1/base/gml.xsd";//      String encoding  = "base64";    //创建缓冲区距离,literaData    String input = String.valueOf(20);    String parameterIn = "distance";    executeBuilder.addLiteralData(parameterIn, input);    //创建输出参数    String parameterOut = "result";    executeBuilder.setResponseDocument(parameterOut, null, null, null);    if (!executeBuilder.isExecuteValid())      System.out.println("创建执行请求失败!");    // 执行wps处理    ExecuteDocument executeRequest = executeBuilder.getExecute();    System.out.println("发送的执行请求是:\n" + executeRequest.xmlText() + "\n");    Object response = wpsClient.execute(url, executeRequest);    System.out.println("获取的响应结果是:\n" + response.toString() + "\n");    //输出结果    if (response instanceof ExecuteResponseDocument) {      ExecuteResponseDocument responseDoc = (ExecuteResponseDocument) response;      XObject data = XPathAPI.eval(responseDoc.getDomNode(), "//wps:ComplexData");      String output = data.toString();      System.out.println(output);    }  }}

下面是pom.xml的内容。

<project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0modelVersion>  <groupId> edu.sdaugroupId>  <artifactId>wpsstudyartifactId>  <version>0.0.1-SNAPSHOTversion>  <packaging>jarpackaging>  <name>wpsstudyname>  <url>http://maven.apache.orgurl>  <properties>    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>  properties>  <dependencies>    <dependency>      <groupId>junitgroupId>      <artifactId>junitartifactId>      <version>4.11version>      <scope>testscope>    dependency>    <dependency>      <groupId>org.n52.wpsgroupId>      <artifactId>52n-wps-client-libartifactId>      <version>3.3.1version>    dependency>    <dependency>      <groupId>org.slf4jgroupId>      <artifactId>slf4j-simpleartifactId>      <version>1.7.30version>      <scope>compilescope>    dependency>      dependencies>  <repositories>    <repository>      <id>n52-releasesid>      <name>52n Releasesname>      <url>http://52north.org/maven/repo/releasesurl>      <releases>        <enabled>trueenabled>      releases>      <snapshots>        <enabled>trueenabled>      snapshots>    repository>  repositories>project>

点右键运行,可以看到输出结果。

kotlin中mainactivity无法直接调用xml中的控件_使用52North 客户端接口调用OGC WPS服务...相关推荐

  1. (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置

    1.struts日期格式的转换package cn.sxx.utils;import java.text.ParseException; import java.text.SimpleDateForm ...

  2. android 模糊查询控件_第三十二篇:在SOUI2.0中像android一样使用资源

    SOUI2.0之前,在SOUI中使用资源通常是直接使用这个资源的name(一个字符串)来引用.使用字符串的好处在于字符串能够表达这个资源的意义,因此使用字符串也是现代UI引擎常用的方式.尽管直接使用字 ...

  3. C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件

    摘要 在本文章中笔者使用WinForm.NET2.0开发出一个具有固定背景图片的带滚动条的容器控件.点击下载本文章配套的演示程序 /Files/xdesigner/FixedBackground.zi ...

  4. Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题

    场景 在Winform中进行页面设计时,常使用控件的Dock属性来进行布局调整.但是由于设置属性的顺序问题,导致达不到想要的效果. 比如以下两个控件 下面的控件设置的Dock属性是Bottom,即在页 ...

  5. WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法

    WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描 ...

  6. 添加Aforge控件,报错“在.....中没有可放置在工具箱上的控件”

    添加Aforge控件,报错"在-中没有可放置在工具箱上的控件" 1.先添加AForge系列引用 工具–>NuGet包管理器–>管理解决方案的NuGet程序包 之后,打开 ...

  7. hmi服务器在宽限期下运行,通过HMI/SCADA 系统(如 WinCC)中的 SNMP OPC服务器,使用 ActiveX控件监测SIMATIC NET系列的SNMP兼容设备...

    n 问题: 如何通过HMI/SCADA 系统(如 WinCC)中的 SNMP OPC服务器,使用ActiveX控件来监测 SIMATIC NET系列的SNMP兼容设备?n 解答: 通过SIMATIC ...

  8. vlc集成c#_C# Winform开发程序调用VLC播放器控件播放视频.

    VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC ...

  9. Android动态加载XML文件及控件来简单实现QQ好友印象的功能

    在android开发中,我们常常会遇到界面布局控件不确定的情况.由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态 ...

最新文章

  1. 爱奇艺才被做空又爆裁员,技术研发为裁员重灾区
  2. word文档中添加mathtype加载项
  3. 七天学习计划_c#_[6][7]多线程
  4. C 语言编程 — 数据类型转换
  5. typeset的常见用法
  6. 2021年慈溪中学高考成绩查询,2021年慈溪市高考状元名单资料,今年慈溪市高考状元多少分...
  7. 如何测试WEB应用程序防止SQL注入***
  8. mysql 编译 bsion_mysql编译安装
  9. 如何用python控制设备实现自动_带你用 Python 实现自动化群控设备
  10. char与byte差异
  11. 50 个 jQuery 插件可将你的网站带到另外一个高度 【已翻译100%】
  12. 【软件工程】需求分析文档——需求规格说明书
  13. W3Cschoool菜鸟教程
  14. 13.包装类和字符串
  15. c++ stl源码-我理解的空间配置器
  16. 耶利哥打不开因计算机丢失,我的电脑游戏打不开说什么应用程序错误。是不是中毒了...
  17. torch.nn模块 池化层
  18. 青岛理工大学计算机学院王德兴,现任领导
  19. STM32F407 ADC+DMA+定时器 定时采样模拟量
  20. 如何理解API?API 是如何工作的?(5分钟诠释)

热门文章

  1. 好代码是管出来的——使用Git来管理源代码
  2. .net core连接MongoDB
  3. [译]ASP.NET Core 2.0 带初始参数的中间件
  4. rest_framework06:自动生成路由\action使用\认证
  5. [转]阿里开源低代码引擎LowCodeEngine
  6. [转]nginx反向代理网站(网易、百度之类的)
  7. [转]Android产品研发(十九)
  8. 跨服务器 快速 导入数据表记录 Insert into SELECT
  9. C语言试题四十四之移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。
  10. Android之屏幕旋转之后当前activity被finish了依然被拉起来