wps-js-52-north
Version:
Web Processing Service JavaScrict library
356 lines (283 loc) • 12.9 kB
HTML
<html>
<head>
<meta charset="UTF-8">
<!-- JQuery and wps-js-->
<script src="bower_components/jquery/dist/jquery.min.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/lib/Class.js" type="text/javascript"></script>
<script src="js/wps-js-lib/Constants.js" type="text/javascript"></script>
<script src="js/wps-js-lib/Utility.js" type="text/javascript"></script>
<script src="js/wps-js-lib/response/BaseResponse.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/CapabilitiesResponse.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/CapabilitiesResponse_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/CapabilitiesResponse_v1_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/CapabilitiesResponse_v2_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/DescribeProcessResponse.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/DescribeProcessResponse_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/DescribeProcessResponse_v1_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/DescribeProcessResponse_v2_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/ExecuteResponse.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/ExecuteResponse_v1_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/ExecuteResponse_v2_xml.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/ResponseFactory.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/response/ExceptionReportResponse.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/BaseRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/GetRequest.js" type="text/javascript"></script>
<script src="js/wps-js-lib/request/PostRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/InputGenerator.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/OutputGenerator.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/ExecuteRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/ExecuteRequest_v1.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/ExecuteRequest_v2.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/DescribeProcessGetRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/GetCapabilitiesGetRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/DescribeProcessPostRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/GetCapabilitiesPostRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/GetStatusGetRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/request/GetResultGetRequest.js"
type="text/javascript"></script>
<script src="js/wps-js-lib/WpsService.js" type="text/javascript"></script>
<title>wps-js example</title>
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<div id="wrapper">
<div>
<h1>wps-js example</h1>
<p>
wps-js is an <a href="https://github.com/52North/wps-js/"
title="wps-js on GitHub">open source client library</a> for
connecting Javascript client to <a
href="http://www.opengeospatial.org/standards/wps"
title="WPS @ Open Geospatial Consortium">OGC Web Processing</a>
services. This page demonstrates how you can use it. More
documentation is available in the <a
href="https://wiki.52north.org/bin/view/Geoprocessing/Wps-js"
title="wps-js wiki page">52°North Wiki</a> and on <a
href="https://github.com/52North/wps-js/blob/master/README.md"
title="wps-js readme">GitHub</a>.
</p>
</div>
<div>
<select id="wps-selection">
<option>Select a WPS</option>
<option>http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService</option>
<option>http://geostatistics.demo.52north.org/wps/WebProcessingService</option>
</select>
</div>
<div>
<button id="wps-describeProcess" onclick=describeProcess()>describeProcessTest</button>
<button id="wps-execute_v1" onclick=execute_v1()>execute_v1_Test</button>
<button id="wps-execute_v2" onclick=execute_v2()>execute_v2_Test</button>
<button id="wps-getStatus" onclick=getStatus()>getStatus_Test</button>
<button id="wps-getResult" onclick=getResult()>getResult_Test</button>
</div>
<div>
<h3>XML</h3>
<div class="xml-container">
<textarea id="xml">test</textarea>
</div>
</div>
</div>
<script type="text/javascript">
var wps;
// add behavior to html elements
// document.getElementById("processes").onchange = function() {
// var sel = document.getElementById("processes");
//
// describeProcess(sel.options[sel.selectedIndex].text);
// };
var capabilitiesCallback = function(response) {
var doc = response.getRawResponseDocument();
$("textarea#xml").val((new XMLSerializer()).serializeToString(doc));
var test = response.capabilities.processes;
alert("success");
};
var describeProcessCallback = function(response) {
var doc = response.getRawResponseDocument();
$("textarea#xml").val((new XMLSerializer()).serializeToString(doc));
var test = response.processOffering;
alert("success");
};
var describeProcess = function() {
wps.describeProcess_POST(describeProcessCallback, "addeventtheme");
};
var executeCallback = function(response) {
var doc = response.getRawResponseDocument();
try {
$("textarea#xml").val((new XMLSerializer()).serializeToString(doc));
} catch (e){
$("textarea#xml").val(doc);
}
alert("success");
};
var execute_v1 = function() {
wps = new WpsService({url : "http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService", version : "2.0.0"});
//inputs
var inputGenerator = new InputGenerator();
var referenceInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("data",
"text/xml", "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", null, true, "http://geoprocessing.demo.52north.org:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=topp:tasmania_roads&SRS=EPSG:4326&OUTPUTFORMAT=GML3");
var literalInput = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("width", "xs:double",
null, "0.05");
var inputs = [referenceInput, literalInput];
//outputs
var outputGenerator = new OutputGenerator();
var complexOutput = outputGenerator.createComplexOutput_WPS_1_0("result", "text/xml",
"http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", "UTF-8", null, false, "result", "result");
var outputs = [complexOutput];
wps.execute(executeCallback, "org.n52.wps.server.algorithm.SimpleBufferAlgorithm", "document",
"async", false, inputs, outputs);
};
var execute_v2 = function() {
wps = new WpsService({url : "http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService", version : "2.0.0"});
//inputs
var inputGenerator = new InputGenerator();
var referenceInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("data",
"text/xml", "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", null, true, "http://geoprocessing.demo.52north.org:8080/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=topp:tasmania_roads&SRS=EPSG:4326&OUTPUTFORMAT=GML3");
var literalInput = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("width", null,
null, "0.05");
var inputs = [referenceInput, literalInput];
//outputs
var outputGenerator = new OutputGenerator();
var complexOutput = outputGenerator.createComplexOutput_WPS_2_0("result", "text/xml",
"http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", "UTF-8", "value");
var outputs = [complexOutput];
wps.execute(executeCallback, "org.n52.wps.server.algorithm.SimpleBufferAlgorithm", "document",
"sync", false, inputs, outputs);
};
var getStatusCallback = function(response){
var doc = response.getRawResponseDocument();
try {
$("textarea#xml").val((new XMLSerializer()).serializeToString(doc));
} catch (e){
$("textarea#xml").val(doc);
}
alert("success");
}
var getResultCallback = function(response){
var doc = response.getRawResponseDocument();
try {
$("textarea#xml").val((new XMLSerializer()).serializeToString(doc));
} catch (e){
$("textarea#xml").val(doc);
}
alert("success");
}
var getStatus = function(){
wps = new WpsService({url : "http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService", version : "2.0.0"});
wps.getStatus_WPS_2_0(getStatusCallback, "2f77dd20-20e5-48a8-a220-019924ef4c88");
}
var getResult = function(){
wps = new WpsService({url : "http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService", version : "2.0.0"});
wps.getResult_WPS_2_0(getResultCallback, "2f77dd20-20e5-48a8-a220-019924ef4c88");
}
function testExecuteRequest_wps_2_0(){
var inputGenerator = new InputGenerator();
var literalInput = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("literalId", "myDataType",
"myUOM", "myValue");
var literalInput2 = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("literalId", null,
null, "myValue");
var complexInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("complexId",
"myMimeType", null, null, false, "<test><test2>hello</test2></test>");
var bboxInput = inputGenerator.createBboxDataInput_wps_1_0_and_2_0("myBBOX", "EPSG:4326",
"2", "0.0 0.0", "50.0 50.0");
var referenceInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("complexId",
"myMimeType", "mySchema", null, true, "http://myReferenceUrl");
var inputs = [literalInput, literalInput2, complexInput, bboxInput, referenceInput];
//outputs
var outputGenerator = new OutputGenerator();
//var literalOutput = outputGenerator.createLiteralOutput_WPS_2_0("literalOutput", "reference");
var complexOutput = outputGenerator.createComplexOutput_WPS_2_0("complexOutput", "myMimeType",
"mySchema", "myEncoding", "value");
var outputs = [complexOutput];
var executeRequest = new ExecuteRequest_v2({
url : "testUrl",
version : "2.0.0",
processIdentifier : "myProcess",
responseFormat : "raw",
executionMode : "async",
inputs : inputs,
outputs : outputs
});
var payload = executeRequest.createPostPayload();
$("textarea#xml").val(payload);
var test="g";
}
function testExecuteRequest_wps_1_0(){
var inputGenerator = new InputGenerator();
var literalInput = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("literalId", "myDataType",
"myUOM", "myValue");
var literalInput2 = inputGenerator.createLiteralDataInput_wps_1_0_and_2_0("literalId", null,
null, "myValue");
var complexInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("complexId",
"myMimeType", "mySchema", "MyEncoding", false, "<test><test2>hello</test2></test>");
var bboxInput = inputGenerator.createBboxDataInput_wps_1_0_and_2_0("myBBOX", "EPSG:4326",
"2", "0.0 0.0", "50.0 50.0");
var referenceInput = inputGenerator.createComplexDataInput_wps_1_0_and_2_0("complexId",
"myMimeType", "mySchema", null, true, "http://myReferenceUrl");
var inputs = [literalInput, literalInput2, complexInput, bboxInput, referenceInput];
//outputs
var outputGenerator = new OutputGenerator();
//var literalOutput = outputGenerator.createLiteralOutput_WPS_1_0("literalOutput");
var complexOutput = outputGenerator.createComplexOutput_WPS_1_0("complexOutput", "myMimeType",
"mySchema", "myEncoding", "myUOM", true, "MyTitle", "MyAbstract");
var outputs = [complexOutput];
var executeRequest = new ExecuteRequest_v1({
url : "testUrl",
version : "1.0.0",
processIdentifier : "myProcess",
responseFormat : "raw",
executionMode : "async",
lineage : false,
inputs : inputs,
outputs : outputs
});
var payload = executeRequest.createPostPayload();
$("textarea#xml").val(payload);
var test="g";
}
$(document).ready(function() {
document.getElementById("wps-selection").onchange = function() {
// get selected wps (url)
var wpsUrl = $('#wps-selection option:selected').text();
wps = new WpsService({url : wpsUrl, version : "1.0.0"});
wps.getCapabilities_POST(capabilitiesCallback);
};
testExecuteRequest_wps_2_0();
//testExecuteRequest_wps_1_0();
});
</script>
<!-- build:template
<div>
<p class="infotext"><%= message %></p>
</div>
/build -->
</body>
</html>