superedit-OPEN_LAYERS_WPS.php 82 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586
  1. <?php
  2. /**
  3. * http://openlayers.org/dev/examples/wps.html
  4. * http://geoinformatyka.com.pl/usluga-wfs-jak-to-dziala/
  5. *
  6. * TODO: brak ModifyFeature - html btn: olControlModifyFeatureItemInactive
  7. */
  8. function OPEN_LAYERS_WPS() {
  9. $task = V::get('task', '', $_GET);
  10. switch ($task) {
  11. case 'proxy':
  12. $url = V::get('url', '', $_GET);
  13. // http%3A%2F%2Fbiuro.biall-net.pl%2Fwps%3FSERVICE%3DWPS%26REQUEST%3DGetCapabilities
  14. header('Content-Type: application/xml; charset=utf-8');
  15. $urlParts = parse_url($url);
  16. $urlQuery = array();
  17. $urlQueryTmp = V::get('query', '', $urlParts);
  18. $urlQueryTmp = explode('&', $urlQueryTmp);
  19. foreach ($urlQueryTmp as $vQuery) {
  20. $parts = explode('=', $vQuery, 2);
  21. $urlQuery[$parts[0]] = $parts[1];
  22. }
  23. if ('WPS' == V::get('SERVICE', '', $urlQuery)) {
  24. $req = V::get('REQUEST', '', $urlQuery);
  25. $wps = new WpsServer();
  26. $methodName = "{$req}Action";
  27. if (method_exists($wps, $methodName)) {
  28. $wps->$methodName();
  29. }
  30. }
  31. exit;
  32. break;
  33. default:
  34. }
  35. //$_POST['url'] = 'http://demo.opengeo.org/geoserver/wfs';
  36. //$entityBody = file_get_contents('php://input');
  37. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($_SERVER);echo'</pre>';
  38. $url = V::get('_url', '', $_GET);
  39. if ($url) {// @see OpenLayers/examples/proxy.cgi
  40. $allowedHosts = array('www.openlayers.org', 'openlayers.org',
  41. 'labs.metacarta.com', 'world.freemap.in',
  42. 'prototype.openmnnd.org', 'geo.openplans.org',
  43. 'sigma.openplans.org', 'demo.opengeo.org',
  44. 'www.openstreetmap.org', 'sample.azavea.com',
  45. 'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080',
  46. 'vmap0.tiles.osgeo.org', 'www.openrouteservice.org',
  47. 'maps.wien.gv.at');
  48. if (!empty($_POST)) {
  49. // qs = os.environ["QUERY_STRING"]
  50. // d = cgi.parse_qs(qs)
  51. // if d.has_key("url"):
  52. // url = d["url"][0]
  53. // else:
  54. // url = "http://www.openlayers.org"
  55. }
  56. else {
  57. // fs = cgi.FieldStorage()
  58. // url = fs.getvalue('url', "http://www.openlayers.org")
  59. }
  60. $host = explode('/', $url);
  61. $host = $host[2];
  62. if (!in_array($host, $allowedHosts)) {
  63. header("Status: 502 Bad Gateway");
  64. header("Content-Type: text/plain");
  65. echo "\nThis proxy does not allow you to access that location ({$host}).";
  66. exit;
  67. }
  68. else if (substr($url, 0, 7) == 'http://' || substr($url, 0, 8) == 'https://') {
  69. $ch = curl_init();
  70. if (!empty($_POST)) {
  71. /*
  72. length = int(os.environ["CONTENT_LENGTH"])
  73. headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
  74. body = sys.stdin.read(length)
  75. r = urllib2.Request(url, body, headers)
  76. y = urllib2.urlopen(r)
  77. */
  78. }
  79. else {
  80. curl_setopt($ch, CURLOPT_URL, $url);
  81. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// return the transfer as a string
  82. //curl_setopt($ch, CURLOPT_VERBOSE, 1);
  83. curl_setopt($ch, CURLOPT_HEADER, 1);
  84. $response = curl_exec($ch);
  85. // Then, after your curl_exec call:
  86. $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
  87. $header = substr($response, 0, $header_size);
  88. $body = substr($response, $header_size);
  89. curl_close($ch);
  90. $contentType = 'text/plain';
  91. $headers = explode("\n", $header);
  92. foreach ($headers as $vHeader) {
  93. if (substr($vHeader, 0, 13) == 'Content-Type:') {
  94. $contentType = trim(substr($vHeader, 14));
  95. }
  96. }
  97. header("Content-Type: {$contentType}");
  98. echo $body . "\n";
  99. }
  100. }
  101. else {
  102. header("Content-Type: text/plain");
  103. echo "\nIllegal request.";
  104. exit;
  105. }
  106. exit;
  107. }
  108. ?>
  109. <link rel="stylesheet" href="stuff/open-layers/theme/default/style.css" type="text/css">
  110. <link rel="stylesheet" href="stuff/open-layers/style.css" type="text/css">
  111. <style type="text/css">
  112. .olControlEditingToolbar .olControlModifyFeatureItemInactive {
  113. background-image: url(stuff/open-layers/theme/default/img/draw_point_off.png);
  114. }
  115. .olControlEditingToolbar .olControlModifyFeatureItemActive {
  116. background-image: url(stuff/open-layers/theme/default/img/draw_point_on.png);
  117. }
  118. textarea {
  119. display: block;
  120. width: 100%;
  121. height: 3em;
  122. }
  123. label {
  124. display: block;
  125. }
  126. .notsupported {
  127. color: red;
  128. }
  129. button {
  130. display: block;
  131. margin-top: 10px;
  132. }
  133. #docs {
  134. top: 6em;
  135. left: 550px;
  136. position: absolute;
  137. margin-right: 10px;
  138. }
  139. </style>
  140. <h1 id="title">WPS Builder Example</h1>
  141. <div id="tags">
  142. wps, process, advanced
  143. </div>
  144. <div id="shortdesc">Using WPS formats to interact with WPS</div>
  145. <div id="docs">
  146. <p>This example shows WPS in action by using the WPSCapabilities,
  147. WPSDescribeProcess and WPSExecute formats. See
  148. <a target="_blank" href="wps.js">wps.js</a> for the
  149. source code. <b>Note: For applications using WPS, the high level
  150. approach shown in the <a href="wps-client.html">wps-client</a> example
  151. is recommended instead.</b></p>
  152. <ol>
  153. <li>Select a process from the list below the map. The list is
  154. populated with the result of a WPS GetCapabilities request, parsed
  155. using <code>OpenLayers.Format.WPSCapabilities::read</code>.</li>
  156. <li>Fill out the Input form. Hover over fields to get a description.
  157. Required fields are marked with a "*".
  158. To use a geometry from the map as input, select the geometry on the
  159. map (using the pen symbol on the left of the toolbar) and just
  160. click the field. The form is generated from the object returned by
  161. <code>OpenLayers.Format.WPSDescribeProcess::read</code></li>
  162. <li>Click "Execute" and examine the result in the result text area.
  163. If the result can be parsed as features, it will be displayed on
  164. the map as well. The process data is sent to the server with the
  165. serialized XML from <code>OpenLayers.Format.WPSExecute::write</code>,
  166. which can use a modified
  167. <code>OpenLayers.Format.WPSDescribeProcess</code> result object as
  168. input.</li>
  169. </ol>
  170. </div>
  171. <div id="example" style="width:520px">
  172. <div id="map" class="smallmap"></div>
  173. <div>
  174. <select id="processes"><option>Select a process</option></select>
  175. <p id="abstract"></p>
  176. <div id="input"></div>
  177. <div id="output"></div>
  178. </div>
  179. </div>
  180. <script src="stuff/open-layers/lib/OpenLayers.js"></script>
  181. <!-- <script src="stuff/open-layers/wps.js"></script> -->
  182. <script>
  183. //OpenLayers.ProxyHost = "proxy.cgi?url=";
  184. //OpenLayers.ProxyHost = "index.php?FUNCTION_INIT=OPEN_LAYERS_WPS&HEADER_NOT_INIT=YES&_url=";
  185. OpenLayers.ProxyHost = "index.php?FUNCTION_INIT=OPEN_LAYERS_WPS&HEADER_NOT_INIT=YES&task=proxy&url=";
  186. var wps = 'http://biuro.biall-net.pl/wps',//"http://demo.opengeo.org/geoserver/wps",
  187. capabilities, // the capabilities, read by Format.WPSCapabilities::read
  188. process; // the process description from Format.WPSDescribeProcess::read
  189. // get some capabilities
  190. getCapabilities();
  191. // create the UI
  192. var layer = new OpenLayers.Layer.Vector("Scratchpad");
  193. /*
  194. var saveStrategy = new OpenLayers.Strategy.Save();
  195. var wfsLayer = new OpenLayers.Layer.Vector("Editable Features", {
  196. strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
  197. projection: new OpenLayers.Projection("EPSG:4326"),
  198. protocol: new OpenLayers.Protocol.WFS({
  199. version: "1.1.0",
  200. srsName: "EPSG:4326",
  201. url: "http://demo.opengeo.org/geoserver/wfs",
  202. featureNS : "http://opengeo.org",
  203. featureType: "restricted",
  204. geometryName: "the_geom",
  205. schema: "http://demo.opengeo.org/geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=og:restricted",
  206. outputFormat: 'json'
  207. })
  208. });
  209. */
  210. var toolbar = new OpenLayers.Control.EditingToolbar(layer);
  211. toolbar.addControls([new OpenLayers.Control.ModifyFeature(layer, {
  212. title: "Select feature"
  213. })]);
  214. var map = new OpenLayers.Map('map', {
  215. controls: [
  216. toolbar,
  217. new OpenLayers.Control.ZoomPanel(),
  218. new OpenLayers.Control.PanPanel()
  219. ],
  220. layers: [
  221. new OpenLayers.Layer.WMS(
  222. "OSM", "http://maps.opengeo.org/geowebcache/service/wms",
  223. {layers: "openstreetmap", format: "image/png"}
  224. ),
  225. layer
  226. // , wfsLayer
  227. ]
  228. });
  229. map.zoomToMaxExtent();
  230. // add behavior to html elements
  231. document.getElementById("processes").onchange = describeProcess;
  232. // using OpenLayers.Format.WPSCapabilities to read the capabilities
  233. function getCapabilities() {
  234. OpenLayers.Request.GET({
  235. url: wps,
  236. params: {
  237. "SERVICE": "WPS",
  238. "REQUEST": "GetCapabilities"
  239. },
  240. success: function(response){
  241. capabilities = new OpenLayers.Format.WPSCapabilities().read(
  242. response.responseText
  243. );
  244. var dropdown = document.getElementById("processes");
  245. var offerings = capabilities.processOfferings, option;
  246. // populate the dropdown
  247. for (var p in offerings) {
  248. option = document.createElement("option");
  249. option.innerHTML = offerings[p].identifier;
  250. option.value = p;
  251. dropdown.appendChild(option);
  252. }
  253. }
  254. });
  255. }
  256. // using OpenLayers.Format.WPSDescribeProcess to get information about a
  257. // process
  258. function describeProcess() {
  259. var selection = this.options[this.selectedIndex].value;
  260. OpenLayers.Request.GET({
  261. url: wps,
  262. params: {
  263. "SERVICE": "WPS",
  264. "REQUEST": "DescribeProcess",
  265. "VERSION": capabilities.version,
  266. "IDENTIFIER": selection
  267. },
  268. success: function(response) {
  269. process = new OpenLayers.Format.WPSDescribeProcess().read(
  270. response.responseText
  271. ).processDescriptions[selection];
  272. buildForm();
  273. }
  274. });
  275. }
  276. // dynamically create a form from the process description
  277. function buildForm() {
  278. document.getElementById("abstract").innerHTML = process["abstract"];
  279. document.getElementById("input").innerHTML = "<h3>Input:</h3>";
  280. document.getElementById("output").innerHTML = "";
  281. var inputs = process.dataInputs, supported = true,
  282. sld = "text/xml; subtype=sld/1.0.0",
  283. input;
  284. for (var i=0,ii=inputs.length; i<ii; ++i) {
  285. input = inputs[i];
  286. if (input.complexData) {
  287. var formats = input.complexData.supported.formats;
  288. if (formats["application/wkt"]) {
  289. addWKTInput(input);
  290. } else if (formats["text/xml; subtype=wfs-collection/1.0"]) {
  291. addWFSCollectionInput(input);
  292. } else if (formats["image/tiff"]) {
  293. addRasterInput(input);
  294. } else if (formats[sld]) {
  295. addXMLInput(input, sld);
  296. } else {
  297. supported = false;
  298. }
  299. } else if (input.boundingBoxData) {
  300. addBoundingBoxInput(input);
  301. } else if (input.literalData) {
  302. addLiteralInput(input);
  303. } else {
  304. supported = false;
  305. }
  306. if (input.minOccurs > 0) {
  307. document.getElementById("input").appendChild(document.createTextNode("* "));
  308. }
  309. }
  310. if (supported) {
  311. var executeButton = document.createElement("button");
  312. executeButton.innerHTML = "Execute";
  313. document.getElementById("input").appendChild(executeButton);
  314. executeButton.onclick = execute;
  315. } else {
  316. document.getElementById("input").innerHTML = '<span class="notsupported">' +
  317. "Sorry, the WPS builder does not support the selected process." +
  318. "</span>";
  319. }
  320. }
  321. // helper function to dynamically create a textarea for geometry (WKT) data
  322. // input
  323. function addWKTInput(input, previousSibling) {
  324. var name = input.identifier;
  325. var container = document.getElementById("input");
  326. var label = document.createElement("label");
  327. label["for"] = name;
  328. label.title = input["abstract"];
  329. label.innerHTML = name + " (select feature, then click field):";
  330. previousSibling && previousSibling.nextSibling ?
  331. container.insertBefore(label, previousSibling.nextSibling) :
  332. container.appendChild(label);
  333. var field = document.createElement("textarea");
  334. field.onclick = function () {
  335. if (layer.selectedFeatures.length) {
  336. this.innerHTML = new OpenLayers.Format.WKT().write(
  337. layer.selectedFeatures[0]
  338. );
  339. }
  340. createCopy(input, this, addWKTInput);
  341. };
  342. field.onblur = function() {
  343. input.data = field.value ? {
  344. complexData: {
  345. mimeType: "application/wkt",
  346. value: this.value
  347. }
  348. } : undefined;
  349. };
  350. field.title = input["abstract"];
  351. field.id = name;
  352. previousSibling && previousSibling.nextSibling ?
  353. container.insertBefore(field, previousSibling.nextSibling.nextSibling) :
  354. container.appendChild(field);
  355. }
  356. // helper function for xml input
  357. function addXMLInput(input, type) {
  358. var name = input.identifier;
  359. var field = document.createElement("input");
  360. field.title = input["abstract"];
  361. field.value = name + " (" + type + ")";
  362. field.onblur = function() {
  363. input.data = field.value ? {
  364. complexData: {
  365. mimeType: type,
  366. value: this.value
  367. }
  368. } : undefined;
  369. };
  370. document.getElementById("input").appendChild(field);
  371. }
  372. // helper function to dynamically create a WFS collection reference input
  373. function addWFSCollectionInput(input) {
  374. var name = input.identifier;
  375. var field = document.createElement("input");
  376. field.title = input["abstract"];
  377. field.value = name + " (layer on demo server)";
  378. addValueHandlers(field, function() {
  379. input.reference = field.value ? {
  380. mimeType: "text/xml; subtype=wfs-collection/1.0",
  381. href: "http://geoserver/wfs",
  382. method: "POST",
  383. body: {
  384. wfs: {
  385. version: "1.0.0",
  386. outputFormat: "GML2",
  387. featureType: field.value
  388. }
  389. }
  390. } : undefined;
  391. });
  392. document.getElementById("input").appendChild(field);
  393. }
  394. // helper function to dynamically create a raster (GeoTIFF) url input
  395. function addRasterInput(input) {
  396. var name = input.identifier;
  397. var field = document.createElement("input");
  398. field.title = input["abstract"];
  399. var url = window.location.href.split("?")[0];
  400. field.value = url.substr(0, url.lastIndexOf("/")+1) + "data/tazdem.tiff";
  401. document.getElementById("input").appendChild(field);
  402. (field.onblur = function() {
  403. input.reference = {
  404. mimeType: "image/tiff",
  405. href: field.value,
  406. method: "GET"
  407. };
  408. })();
  409. }
  410. // helper function to dynamically create a bounding box input
  411. function addBoundingBoxInput(input) {
  412. var name = input.identifier;
  413. var field = document.createElement("input");
  414. field.title = input["abstract"];
  415. field.value = "left,bottom,right,top (EPSG:4326)";
  416. document.getElementById("input").appendChild(field);
  417. addValueHandlers(field, function() {
  418. input.boundingBoxData = {
  419. projection: "EPSG:4326",
  420. bounds: OpenLayers.Bounds.fromString(field.value)
  421. };
  422. });
  423. }
  424. // helper function to create a literal input textfield or dropdown
  425. function addLiteralInput(input, previousSibling) {
  426. var name = input.identifier;
  427. var container = document.getElementById("input");
  428. var anyValue = input.literalData.anyValue;
  429. // anyValue means textfield, otherwise we create a dropdown
  430. var field = document.createElement(anyValue ? "input" : "select");
  431. field.id = name;
  432. field.title = input["abstract"];
  433. previousSibling && previousSibling.nextSibling ?
  434. container.insertBefore(field, previousSibling.nextSibling) :
  435. container.appendChild(field);
  436. if (anyValue) {
  437. var dataType = input.literalData.dataType;
  438. field.value = name + (dataType ? " (" + dataType + ")" : "");
  439. addValueHandlers(field, function() {
  440. input.data = field.value ? {
  441. literalData: {
  442. value: field.value
  443. }
  444. } : undefined;
  445. createCopy(input, field, addLiteralInput);
  446. });
  447. } else {
  448. var option;
  449. option = document.createElement("option");
  450. option.innerHTML = name;
  451. field.appendChild(option);
  452. for (var v in input.literalData.allowedValues) {
  453. option = document.createElement("option");
  454. option.value = v;
  455. option.innerHTML = v;
  456. field.appendChild(option);
  457. }
  458. field.onchange = function() {
  459. createCopy(input, field, addLiteralInput);
  460. input.data = this.selectedIndex ? {
  461. literalData: {
  462. value: this.options[this.selectedIndex].value
  463. }
  464. } : undefined;
  465. };
  466. }
  467. }
  468. // if maxOccurs is > 1, this will add a copy of the field
  469. function createCopy(input, field, fn) {
  470. if (input.maxOccurs && input.maxOccurs > 1 && !field.userSelected) {
  471. // add another copy of the field - we don't check maxOccurs
  472. field.userSelected = true;
  473. var newInput = OpenLayers.Util.extend({}, input);
  474. // we recognize copies by the occurrence property
  475. newInput.occurrence = (input.occurrence || 0) + 1;
  476. process.dataInputs.push(newInput);
  477. fn(newInput, field);
  478. }
  479. }
  480. // helper function for adding events to form fields
  481. function addValueHandlers(field, onblur) {
  482. field.onclick = function() {
  483. if (!this.initialValue) {
  484. this.initialValue = this.value;
  485. this.value = "";
  486. }
  487. };
  488. field.onblur = function() {
  489. if (!this.value) {
  490. this.value = this.initialValue;
  491. delete this.initialValue;
  492. }
  493. onblur.apply(this, arguments);
  494. };
  495. }
  496. // execute the process
  497. function execute() {
  498. var output = process.processOutputs[0];
  499. var input;
  500. // remove occurrences that the user has not filled out
  501. for (var i=process.dataInputs.length-1; i>=0; --i) {
  502. input = process.dataInputs[i];
  503. if ((input.minOccurs === 0 || input.occurrence) && !input.data && !input.reference) {
  504. OpenLayers.Util.removeItem(process.dataInputs, input);
  505. }
  506. }
  507. process.responseForm = {
  508. rawDataOutput: {
  509. identifier: output.identifier
  510. }
  511. };
  512. if (output.complexOutput && output.complexOutput.supported.formats["application/wkt"]) {
  513. process.responseForm.rawDataOutput.mimeType = "application/wkt";
  514. }
  515. OpenLayers.Request.POST({
  516. url: wps,
  517. data: new OpenLayers.Format.WPSExecute().write(process),
  518. success: showOutput
  519. });
  520. }
  521. // add the process's output to the page
  522. function showOutput(response) {
  523. var result = document.getElementById("output");
  524. result.innerHTML = "<h3>Output:</h3>";
  525. var features;
  526. var contentType = response.getResponseHeader("Content-Type");
  527. if (contentType == "application/wkt") {
  528. features = new OpenLayers.Format.WKT().read(response.responseText);
  529. } else if (contentType == "text/xml; subtype=wfs-collection/1.0") {
  530. features = new OpenLayers.Format.WFST.v1_0_0().read(response.responseText);
  531. }
  532. if (features && (features instanceof OpenLayers.Feature.Vector || features.length)) {
  533. layer.addFeatures(features);
  534. result.innerHTML += "The result should also be visible on the map.";
  535. }
  536. result.innerHTML += "<textarea>" + response.responseText + "</textarea>";
  537. }
  538. </script>
  539. <?php
  540. function get_location($ip) {
  541. $content = @file_get_contents('http://api.hostip.info/?ip='.$ip);
  542. if ($content != FALSE) {
  543. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">content (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($content);echo'</pre>';
  544. $xml = new SimpleXmlElement($content);
  545. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">xml (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($xml);echo'</pre>';
  546. $coordinates = $xml->children('gml', TRUE)->featureMember->children('', TRUE)->Hostip->ipLocation->children('gml', TRUE)->pointProperty->Point->coordinates;
  547. $longlat = explode(',', $coordinates);
  548. $location['longitude'] = $longlat[0];
  549. $location['latitude'] = $longlat[1];
  550. $location['citystate'] = '==>'.$xml->children('gml', TRUE)->featureMember->children('', TRUE)->Hostip->children('gml', TRUE)->name;
  551. $location['country'] = '==>'.$xml->children('gml', TRUE)->featureMember->children('', TRUE)->Hostip->countryName;
  552. return $location;
  553. }
  554. else return false;
  555. }
  556. $ip = '94.158.130.34';// biuro.biall-net.pl
  557. $location_info = get_location($ip);
  558. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">location_info('.$ip.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($location_info);echo'</pre>';
  559. /*
  560. $the_xml = file_get_contents('');
  561. $feed = new SimpleXMLElement($the_xml);
  562. $namespaces = $feed->getNamespaces(true);
  563. foreach ($feed->entry as $entry) {
  564. $event = $entry->children($namespaces['gd']);
  565. echo "<p>Event = " . $entry->title . "<br />startTime = " . $event->when->startTime . " and endTime = " . $event->when->endTime . "</p>\n";
  566. }
  567. */
  568. }
  569. class WpsServer {
  570. public function getCapabilitiesAction() {
  571. echo '<?xml version="1.0" encoding="UTF-8"?>';
  572. ?>
  573. <wps:Capabilities xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en" service="WPS" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
  574. <ows:ServiceIdentification>
  575. <ows:Title>Prototype GeoServer WPS</ows:Title>
  576. <ows:Abstract />
  577. <ows:Keywords>
  578. <ows:Keyword>wps</ows:Keyword>
  579. <ows:Keyword>geoserver</ows:Keyword>
  580. </ows:Keywords>
  581. <ows:ServiceType>WPS</ows:ServiceType>
  582. <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
  583. <ows:Fees>NONE</ows:Fees>
  584. <ows:AccessConstraints>NONE</ows:AccessConstraints>
  585. </ows:ServiceIdentification>
  586. <ows:ServiceProvider>
  587. <ows:ProviderName>GeoServer</ows:ProviderName>
  588. <ows:ProviderSite />
  589. <ows:ServiceContact />
  590. </ows:ServiceProvider>
  591. <ows:OperationsMetadata>
  592. <ows:Operation name="GetCapabilities">
  593. <ows:DCP>
  594. <ows:HTTP>
  595. <ows:Get xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  596. <ows:Post xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  597. </ows:HTTP>
  598. </ows:DCP>
  599. </ows:Operation>
  600. <ows:Operation name="DescribeProcess">
  601. <ows:DCP>
  602. <ows:HTTP>
  603. <ows:Get xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  604. <ows:Post xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  605. </ows:HTTP>
  606. </ows:DCP>
  607. </ows:Operation>
  608. <ows:Operation name="Execute">
  609. <ows:DCP>
  610. <ows:HTTP>
  611. <ows:Get xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  612. <ows:Post xlink:href="http://demo.opengeo.org:80/geoserver/wps" />
  613. </ows:HTTP>
  614. </ows:DCP>
  615. </ows:Operation>
  616. </ows:OperationsMetadata>
  617. <wps:ProcessOfferings>
  618. <wps:Process wps:processVersion="1.0.0">
  619. <ows:Identifier>JTS:area</ows:Identifier>
  620. <ows:Title>Area</ows:Title>
  621. <ows:Abstract>Returns the area of a geometry, in the units of the geometry. Assumes a Cartesian plane, so this process is only recommended for non-geographic CRSes.</ows:Abstract>
  622. </wps:Process>
  623. <wps:Process wps:processVersion="1.0.0">
  624. <ows:Identifier>JTS:boundary</ows:Identifier>
  625. <ows:Title>Boundary</ows:Title>
  626. <ows:Abstract>Returns a geometry boundary. For polygons, returns a linear ring or multi-linestring equal to the boundary of the polygon(s). For linestrings, returns a multipoint equal to the endpoints of the linestring. For points, returns an empty geometry collection.</ows:Abstract>
  627. </wps:Process>
  628. <wps:Process wps:processVersion="1.0.0">
  629. <ows:Identifier>JTS:buffer</ows:Identifier>
  630. <ows:Title>Buffer</ows:Title>
  631. <ows:Abstract>Returns a polygonal geometry representing the input geometry enlarged by a given distance around its exterior.</ows:Abstract>
  632. </wps:Process>
  633. <wps:Process wps:processVersion="1.0.0">
  634. <ows:Identifier>JTS:centroid</ows:Identifier>
  635. <ows:Title>Centroid</ows:Title>
  636. <ows:Abstract>Returns the geometric centroid of a geometry. Output is a single point. The centroid point may be located outside the geometry.</ows:Abstract>
  637. </wps:Process>
  638. <wps:Process wps:processVersion="1.0.0">
  639. <ows:Identifier>JTS:contains</ows:Identifier>
  640. <ows:Title>Contains Test</ows:Title>
  641. <ows:Abstract>Tests if no points of the second geometry lie in the exterior of the first geometry and at least one point of the interior of second geometry lies in the interior of first geometry.</ows:Abstract>
  642. </wps:Process>
  643. <wps:Process wps:processVersion="1.0.0">
  644. <ows:Identifier>JTS:convexHull</ows:Identifier>
  645. <ows:Title>Convex Hull</ows:Title>
  646. <ows:Abstract>Returns the smallest convex polygon that contains the entire input geometry.</ows:Abstract>
  647. </wps:Process>
  648. <wps:Process wps:processVersion="1.0.0">
  649. <ows:Identifier>JTS:crosses</ows:Identifier>
  650. <ows:Title>Crosses Test</ows:Title>
  651. <ows:Abstract>Tests if two geometries have some, but not all, interior points in common.</ows:Abstract>
  652. </wps:Process>
  653. <wps:Process wps:processVersion="1.0.0">
  654. <ows:Identifier>JTS:densify</ows:Identifier>
  655. <ows:Title>Densify</ows:Title>
  656. <ows:Abstract>Returns a spatially equivalent geometry with vertices added to ensure line segments are no longer than a given distance.</ows:Abstract>
  657. </wps:Process>
  658. <wps:Process wps:processVersion="1.0.0">
  659. <ows:Identifier>JTS:difference</ows:Identifier>
  660. <ows:Title>Difference</ows:Title>
  661. <ows:Abstract>Returns a geometry representing the points that are contained in a geometry but not contained in a second geometry. The result may be a heterogeneous geometry collection.</ows:Abstract>
  662. </wps:Process>
  663. <wps:Process wps:processVersion="1.0.0">
  664. <ows:Identifier>JTS:dimension</ows:Identifier>
  665. <ows:Title>Dimension</ows:Title>
  666. <ows:Abstract>Returns the largest dimension of a geometry or geometry collection: 0 for point, 1 for line, 2 for polygon.</ows:Abstract>
  667. </wps:Process>
  668. <wps:Process wps:processVersion="1.0.0">
  669. <ows:Identifier>JTS:disjoint</ows:Identifier>
  670. <ows:Title>Disjoint Test</ows:Title>
  671. <ows:Abstract>Tests if two geometries do not have any points in common.</ows:Abstract>
  672. </wps:Process>
  673. <wps:Process wps:processVersion="1.0.0">
  674. <ows:Identifier>JTS:distance</ows:Identifier>
  675. <ows:Title>Distance</ows:Title>
  676. <ows:Abstract>Returns the minimum distance between two geometries. Measurement is given in the input units, so geographic coordinates are not recommended.</ows:Abstract>
  677. </wps:Process>
  678. <wps:Process wps:processVersion="1.0.0">
  679. <ows:Identifier>JTS:endPoint</ows:Identifier>
  680. <ows:Title>End Point</ows:Title>
  681. <ows:Abstract>Returns a point geometry equal to the final vertex of a LineString.</ows:Abstract>
  682. </wps:Process>
  683. <wps:Process wps:processVersion="1.0.0">
  684. <ows:Identifier>JTS:envelope</ows:Identifier>
  685. <ows:Title>Envelope</ows:Title>
  686. <ows:Abstract>Returns the smallest bounding box polygon that contains a geometry. For a point geometry, returns the same point.</ows:Abstract>
  687. </wps:Process>
  688. <wps:Process wps:processVersion="1.0.0">
  689. <ows:Identifier>JTS:equalsExact</ows:Identifier>
  690. <ows:Title>Exactly Equal Test</ows:Title>
  691. <ows:Abstract>Tests if two geometries are identical on a vertex-by-vertex basis.</ows:Abstract>
  692. </wps:Process>
  693. <wps:Process wps:processVersion="1.0.0">
  694. <ows:Identifier>JTS:equalsExactTolerance</ows:Identifier>
  695. <ows:Title>Exactly Equal Test with Tolerance</ows:Title>
  696. <ows:Abstract>Tests if two geometries are identical on a vertex-by-vertex basis, up to a vertex distance tolerance.</ows:Abstract>
  697. </wps:Process>
  698. <wps:Process wps:processVersion="1.0.0">
  699. <ows:Identifier>JTS:exteriorRing</ows:Identifier>
  700. <ows:Title>Exterior Ring</ows:Title>
  701. <ows:Abstract>Returns the exterior ring of a polygonal geometry.</ows:Abstract>
  702. </wps:Process>
  703. <wps:Process wps:processVersion="1.0.0">
  704. <ows:Identifier>JTS:geometryType</ows:Identifier>
  705. <ows:Title>Geometry Type</ows:Title>
  706. <ows:Abstract>Returns the name of a geometry's type. Values are one of POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION.</ows:Abstract>
  707. </wps:Process>
  708. <wps:Process wps:processVersion="1.0.0">
  709. <ows:Identifier>JTS:getGeometryN</ows:Identifier>
  710. <ows:Title>Nth Geometry</ows:Title>
  711. <ows:Abstract>Returns the geometry element at a given index in a geometry collection. Indexing starts at 0.</ows:Abstract>
  712. </wps:Process>
  713. <wps:Process wps:processVersion="1.0.0">
  714. <ows:Identifier>JTS:getX</ows:Identifier>
  715. <ows:Title>Get X Ordinate</ows:Title>
  716. <ows:Abstract>Returns the X value (first ordinate) for point geometries. For other geometry types returns the X value of the centroid.</ows:Abstract>
  717. </wps:Process>
  718. <wps:Process wps:processVersion="1.0.0">
  719. <ows:Identifier>JTS:getY</ows:Identifier>
  720. <ows:Title>Get Y Ordinate</ows:Title>
  721. <ows:Abstract>Returns the Y value (second ordinate) for point geometries. For other geometry types returns the Y value of the centroid.</ows:Abstract>
  722. </wps:Process>
  723. <wps:Process wps:processVersion="1.0.0">
  724. <ows:Identifier>JTS:interiorPoint</ows:Identifier>
  725. <ows:Title>Interior Point</ows:Title>
  726. <ows:Abstract>Returns a point that lies inside a geometry if possible, or that lies on its boundary.</ows:Abstract>
  727. </wps:Process>
  728. <wps:Process wps:processVersion="1.0.0">
  729. <ows:Identifier>JTS:interiorRingN</ows:Identifier>
  730. <ows:Title>Nth Interior Ring</ows:Title>
  731. <ows:Abstract>Returns a linear ring from a polygon containing interior rings (holes) determined by a given index. First interior ring has index 0. If no interior rings, returns null.</ows:Abstract>
  732. </wps:Process>
  733. <wps:Process wps:processVersion="1.0.0">
  734. <ows:Identifier>JTS:intersection</ows:Identifier>
  735. <ows:Title>Intersection</ows:Title>
  736. <ows:Abstract>Returns a geometry representing the points that two geometries have in common. The result may be a heterogeneous geometry collection. If no intersection, returns an empty geometry.</ows:Abstract>
  737. </wps:Process>
  738. <wps:Process wps:processVersion="1.0.0">
  739. <ows:Identifier>JTS:intersects</ows:Identifier>
  740. <ows:Title>Intersects Test</ows:Title>
  741. <ows:Abstract>Tests if two geometries intersect.</ows:Abstract>
  742. </wps:Process>
  743. <wps:Process wps:processVersion="1.0.0">
  744. <ows:Identifier>JTS:isClosed</ows:Identifier>
  745. <ows:Title>Closed Test</ows:Title>
  746. <ows:Abstract>Tests if the initial vertex equals the final vertex in a linear geometry. Points and polygons always return True.</ows:Abstract>
  747. </wps:Process>
  748. <wps:Process wps:processVersion="1.0.0">
  749. <ows:Identifier>JTS:isEmpty</ows:Identifier>
  750. <ows:Title>Empty Test</ows:Title>
  751. <ows:Abstract>Tests if a geometry contains no vertices.</ows:Abstract>
  752. </wps:Process>
  753. <wps:Process wps:processVersion="1.0.0">
  754. <ows:Identifier>JTS:isRing</ows:Identifier>
  755. <ows:Title>Ring Test</ows:Title>
  756. <ows:Abstract>Tests if a geometry is both closed and simple.</ows:Abstract>
  757. </wps:Process>
  758. <wps:Process wps:processVersion="1.0.0">
  759. <ows:Identifier>JTS:isSimple</ows:Identifier>
  760. <ows:Title>Simple Test</ows:Title>
  761. <ows:Abstract>Tests if a geometry is topologically simple. Points, polygons, closed line strings, and linear rings are always simple. Other geometries are considered simple if no two points are identical.</ows:Abstract>
  762. </wps:Process>
  763. <wps:Process wps:processVersion="1.0.0">
  764. <ows:Identifier>JTS:isValid</ows:Identifier>
  765. <ows:Title>Valid Test</ows:Title>
  766. <ows:Abstract>Tests if a geometry is topologically valid.</ows:Abstract>
  767. </wps:Process>
  768. <wps:Process wps:processVersion="1.0.0">
  769. <ows:Identifier>JTS:isWithinDistance</ows:Identifier>
  770. <ows:Title>Within Distance Test</ows:Title>
  771. <ows:Abstract>Tests if the minimum distance between two geometries is less than a tolerance value.</ows:Abstract>
  772. </wps:Process>
  773. <wps:Process wps:processVersion="1.0.0">
  774. <ows:Identifier>JTS:length</ows:Identifier>
  775. <ows:Title>Length</ows:Title>
  776. <ows:Abstract>Returns the total length of all line segments in a geometry. Measurement is given in the source units, so geographic coordinates are not recommended.</ows:Abstract>
  777. </wps:Process>
  778. <wps:Process wps:processVersion="1.0.0">
  779. <ows:Identifier>JTS:numGeometries</ows:Identifier>
  780. <ows:Title>Geometry Count</ows:Title>
  781. <ows:Abstract>Returns the total number of elements in a geometry collection. If not a geometry collection, returns 1. If empty, returns 0.</ows:Abstract>
  782. </wps:Process>
  783. <wps:Process wps:processVersion="1.0.0">
  784. <ows:Identifier>JTS:numInteriorRing</ows:Identifier>
  785. <ows:Title>Interior Ring Count</ows:Title>
  786. <ows:Abstract>Returns the total number of interior rings in a polygonal geometry. Points and lines return 0.</ows:Abstract>
  787. </wps:Process>
  788. <wps:Process wps:processVersion="1.0.0">
  789. <ows:Identifier>JTS:numPoints</ows:Identifier>
  790. <ows:Title>Number of Points</ows:Title>
  791. <ows:Abstract>Returns the number of vertices in a given geometry.</ows:Abstract>
  792. </wps:Process>
  793. <wps:Process wps:processVersion="1.0.0">
  794. <ows:Identifier>JTS:overlaps</ows:Identifier>
  795. <ows:Title>Overlaps Test</ows:Title>
  796. <ows:Abstract>Tests if two geometries share some but not all interior points. Points or lines will always return False.</ows:Abstract>
  797. </wps:Process>
  798. <wps:Process wps:processVersion="1.0.0">
  799. <ows:Identifier>JTS:pointN</ows:Identifier>
  800. <ows:Title>Nth Point</ows:Title>
  801. <ows:Abstract>Returns a point geometry equal to the Nth vertex in a geometry as determined by a given index. First vertex has index 0.</ows:Abstract>
  802. </wps:Process>
  803. <wps:Process wps:processVersion="1.0.0">
  804. <ows:Identifier>JTS:polygonize</ows:Identifier>
  805. <ows:Title>Polygonize</ows:Title>
  806. <ows:Abstract>Creates a set of polygons from linestrings delineating them. The linestrings must be corrctly noded (i.e. touch only at endpoints).</ows:Abstract>
  807. </wps:Process>
  808. <wps:Process wps:processVersion="1.0.0">
  809. <ows:Identifier>JTS:relate</ows:Identifier>
  810. <ows:Title>Relate Matrix String</ows:Title>
  811. <ows:Abstract>Returns the DE-9IM intersection matrix string for the spatial relationship between the input geometries. The matrix string is in the form [II][IB][IE][BI][BB][BE][EI][EB][EE] where I=interior, B=boundary, and E=exterior. Matrix symbols are 2, 1, 0 or F.</ows:Abstract>
  812. </wps:Process>
  813. <wps:Process wps:processVersion="1.0.0">
  814. <ows:Identifier>JTS:relatePattern</ows:Identifier>
  815. <ows:Title>Relate Test</ows:Title>
  816. <ows:Abstract>Tests if the spatial relationship between two geometries matches the given DE-9IM intersection matrix pattern. The pattern is given in the form [II][IB][IE][BI][BB][BE][EI][EB][EE] where I=interior, B=boundary, and E=exterior. Pattern symbols can be 2, 1, 0, F or *.</ows:Abstract>
  817. </wps:Process>
  818. <wps:Process wps:processVersion="1.0.0">
  819. <ows:Identifier>JTS:reproject</ows:Identifier>
  820. <ows:Title>Reproject Geometry</ows:Title>
  821. <ows:Abstract>Reprojects a given geometry into a supplied coordinate reference system.</ows:Abstract>
  822. </wps:Process>
  823. <wps:Process wps:processVersion="1.0.0">
  824. <ows:Identifier>JTS:simplify</ows:Identifier>
  825. <ows:Title>Simplify</ows:Title>
  826. <ows:Abstract>Returns a geometry that has been simplified (reduced in vertices) according to the Douglas-Peucker algorithm.</ows:Abstract>
  827. </wps:Process>
  828. <wps:Process wps:processVersion="1.0.0">
  829. <ows:Identifier>JTS:splitPolygon</ows:Identifier>
  830. <ows:Title>Split Polygon</ows:Title>
  831. <ows:Abstract>Splits a polygon by a linestring</ows:Abstract>
  832. </wps:Process>
  833. <wps:Process wps:processVersion="1.0.0">
  834. <ows:Identifier>JTS:startPoint</ows:Identifier>
  835. <ows:Title>Start Point</ows:Title>
  836. <ows:Abstract>Returns a point geometry equal to the first vertex of a LineString.</ows:Abstract>
  837. </wps:Process>
  838. <wps:Process wps:processVersion="1.0.0">
  839. <ows:Identifier>JTS:symDifference</ows:Identifier>
  840. <ows:Title>Symmetric Difference</ows:Title>
  841. <ows:Abstract>Returns a geometry representing the points contained in either one of two geometries but not in both. The result may be a heterogeneous geometry collection.</ows:Abstract>
  842. </wps:Process>
  843. <wps:Process wps:processVersion="1.0.0">
  844. <ows:Identifier>JTS:touches</ows:Identifier>
  845. <ows:Title>Touches Test</ows:Title>
  846. <ows:Abstract>Tests if two geometries have at least one boundary point in common, but share no interior points.</ows:Abstract>
  847. </wps:Process>
  848. <wps:Process wps:processVersion="1.0.0">
  849. <ows:Identifier>JTS:union</ows:Identifier>
  850. <ows:Title>Union</ows:Title>
  851. <ows:Abstract>Returns a geometry representing all points contained in any of the geometries in a geometry collection.</ows:Abstract>
  852. </wps:Process>
  853. <wps:Process wps:processVersion="1.0.0">
  854. <ows:Identifier>JTS:within</ows:Identifier>
  855. <ows:Title>Within Test</ows:Title>
  856. <ows:Abstract>Tests if the first geometry is contained in the second geometry.</ows:Abstract>
  857. </wps:Process>
  858. <wps:Process wps:processVersion="1.0.0">
  859. <ows:Identifier>geo:area</ows:Identifier>
  860. <ows:Title>Area</ows:Title>
  861. <ows:Abstract>Returns the area of a geometry, in the units of the geometry. Assumes a Cartesian plane, so this process is only recommended for non-geographic CRSes.</ows:Abstract>
  862. </wps:Process>
  863. <wps:Process wps:processVersion="1.0.0">
  864. <ows:Identifier>geo:boundary</ows:Identifier>
  865. <ows:Title>Boundary</ows:Title>
  866. <ows:Abstract>Returns a geometry boundary. For polygons, returns a linear ring or multi-linestring equal to the boundary of the polygon(s). For linestrings, returns a multipoint equal to the endpoints of the linestring. For points, returns an empty geometry collection.</ows:Abstract>
  867. </wps:Process>
  868. <wps:Process wps:processVersion="1.0.0">
  869. <ows:Identifier>geo:buffer</ows:Identifier>
  870. <ows:Title>Buffer</ows:Title>
  871. <ows:Abstract>Returns a polygonal geometry representing the input geometry enlarged by a given distance around its exterior.</ows:Abstract>
  872. </wps:Process>
  873. <wps:Process wps:processVersion="1.0.0">
  874. <ows:Identifier>geo:centroid</ows:Identifier>
  875. <ows:Title>Centroid</ows:Title>
  876. <ows:Abstract>Returns the geometric centroid of a geometry. Output is a single point. The centroid point may be located outside the geometry.</ows:Abstract>
  877. </wps:Process>
  878. <wps:Process wps:processVersion="1.0.0">
  879. <ows:Identifier>geo:contains</ows:Identifier>
  880. <ows:Title>Contains Test</ows:Title>
  881. <ows:Abstract>Tests if no points of the second geometry lie in the exterior of the first geometry and at least one point of the interior of second geometry lies in the interior of first geometry.</ows:Abstract>
  882. </wps:Process>
  883. <wps:Process wps:processVersion="1.0.0">
  884. <ows:Identifier>geo:convexHull</ows:Identifier>
  885. <ows:Title>Convex Hull</ows:Title>
  886. <ows:Abstract>Returns the smallest convex polygon that contains the entire input geometry.</ows:Abstract>
  887. </wps:Process>
  888. <wps:Process wps:processVersion="1.0.0">
  889. <ows:Identifier>geo:crosses</ows:Identifier>
  890. <ows:Title>Crosses Test</ows:Title>
  891. <ows:Abstract>Tests if two geometries have some, but not all, interior points in common.</ows:Abstract>
  892. </wps:Process>
  893. <wps:Process wps:processVersion="1.0.0">
  894. <ows:Identifier>geo:densify</ows:Identifier>
  895. <ows:Title>Densify</ows:Title>
  896. <ows:Abstract>Returns a spatially equivalent geometry with vertices added to ensure line segments are no longer than a given distance.</ows:Abstract>
  897. </wps:Process>
  898. <wps:Process wps:processVersion="1.0.0">
  899. <ows:Identifier>geo:difference</ows:Identifier>
  900. <ows:Title>Difference</ows:Title>
  901. <ows:Abstract>Returns a geometry representing the points that are contained in a geometry but not contained in a second geometry. The result may be a heterogeneous geometry collection.</ows:Abstract>
  902. </wps:Process>
  903. <wps:Process wps:processVersion="1.0.0">
  904. <ows:Identifier>geo:dimension</ows:Identifier>
  905. <ows:Title>Dimension</ows:Title>
  906. <ows:Abstract>Returns the largest dimension of a geometry or geometry collection: 0 for point, 1 for line, 2 for polygon.</ows:Abstract>
  907. </wps:Process>
  908. <wps:Process wps:processVersion="1.0.0">
  909. <ows:Identifier>geo:disjoint</ows:Identifier>
  910. <ows:Title>Disjoint Test</ows:Title>
  911. <ows:Abstract>Tests if two geometries do not have any points in common.</ows:Abstract>
  912. </wps:Process>
  913. <wps:Process wps:processVersion="1.0.0">
  914. <ows:Identifier>geo:distance</ows:Identifier>
  915. <ows:Title>Distance</ows:Title>
  916. <ows:Abstract>Returns the minimum distance between two geometries. Measurement is given in the input units, so geographic coordinates are not recommended.</ows:Abstract>
  917. </wps:Process>
  918. <wps:Process wps:processVersion="1.0.0">
  919. <ows:Identifier>geo:endPoint</ows:Identifier>
  920. <ows:Title>End Point</ows:Title>
  921. <ows:Abstract>Returns a point geometry equal to the final vertex of a LineString.</ows:Abstract>
  922. </wps:Process>
  923. <wps:Process wps:processVersion="1.0.0">
  924. <ows:Identifier>geo:envelope</ows:Identifier>
  925. <ows:Title>Envelope</ows:Title>
  926. <ows:Abstract>Returns the smallest bounding box polygon that contains a geometry. For a point geometry, returns the same point.</ows:Abstract>
  927. </wps:Process>
  928. <wps:Process wps:processVersion="1.0.0">
  929. <ows:Identifier>geo:equalsExact</ows:Identifier>
  930. <ows:Title>Exactly Equal Test</ows:Title>
  931. <ows:Abstract>Tests if two geometries are identical on a vertex-by-vertex basis.</ows:Abstract>
  932. </wps:Process>
  933. <wps:Process wps:processVersion="1.0.0">
  934. <ows:Identifier>geo:equalsExactTolerance</ows:Identifier>
  935. <ows:Title>Exactly Equal Test with Tolerance</ows:Title>
  936. <ows:Abstract>Tests if two geometries are identical on a vertex-by-vertex basis, up to a vertex distance tolerance.</ows:Abstract>
  937. </wps:Process>
  938. <wps:Process wps:processVersion="1.0.0">
  939. <ows:Identifier>geo:exteriorRing</ows:Identifier>
  940. <ows:Title>Exterior Ring</ows:Title>
  941. <ows:Abstract>Returns the exterior ring of a polygonal geometry.</ows:Abstract>
  942. </wps:Process>
  943. <wps:Process wps:processVersion="1.0.0">
  944. <ows:Identifier>geo:geometryType</ows:Identifier>
  945. <ows:Title>Geometry Type</ows:Title>
  946. <ows:Abstract>Returns the name of a geometry's type. Values are one of POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION.</ows:Abstract>
  947. </wps:Process>
  948. <wps:Process wps:processVersion="1.0.0">
  949. <ows:Identifier>geo:getGeometryN</ows:Identifier>
  950. <ows:Title>Nth Geometry</ows:Title>
  951. <ows:Abstract>Returns the geometry element at a given index in a geometry collection. Indexing starts at 0.</ows:Abstract>
  952. </wps:Process>
  953. <wps:Process wps:processVersion="1.0.0">
  954. <ows:Identifier>geo:getX</ows:Identifier>
  955. <ows:Title>Get X Ordinate</ows:Title>
  956. <ows:Abstract>Returns the X value (first ordinate) for point geometries. For other geometry types returns the X value of the centroid.</ows:Abstract>
  957. </wps:Process>
  958. <wps:Process wps:processVersion="1.0.0">
  959. <ows:Identifier>geo:getY</ows:Identifier>
  960. <ows:Title>Get Y Ordinate</ows:Title>
  961. <ows:Abstract>Returns the Y value (second ordinate) for point geometries. For other geometry types returns the Y value of the centroid.</ows:Abstract>
  962. </wps:Process>
  963. <wps:Process wps:processVersion="1.0.0">
  964. <ows:Identifier>geo:interiorPoint</ows:Identifier>
  965. <ows:Title>Interior Point</ows:Title>
  966. <ows:Abstract>Returns a point that lies inside a geometry if possible, or that lies on its boundary.</ows:Abstract>
  967. </wps:Process>
  968. <wps:Process wps:processVersion="1.0.0">
  969. <ows:Identifier>geo:interiorRingN</ows:Identifier>
  970. <ows:Title>Nth Interior Ring</ows:Title>
  971. <ows:Abstract>Returns a linear ring from a polygon containing interior rings (holes) determined by a given index. First interior ring has index 0. If no interior rings, returns null.</ows:Abstract>
  972. </wps:Process>
  973. <wps:Process wps:processVersion="1.0.0">
  974. <ows:Identifier>geo:intersection</ows:Identifier>
  975. <ows:Title>Intersection</ows:Title>
  976. <ows:Abstract>Returns a geometry representing the points that two geometries have in common. The result may be a heterogeneous geometry collection. If no intersection, returns an empty geometry.</ows:Abstract>
  977. </wps:Process>
  978. <wps:Process wps:processVersion="1.0.0">
  979. <ows:Identifier>geo:intersects</ows:Identifier>
  980. <ows:Title>Intersects Test</ows:Title>
  981. <ows:Abstract>Tests if two geometries intersect.</ows:Abstract>
  982. </wps:Process>
  983. <wps:Process wps:processVersion="1.0.0">
  984. <ows:Identifier>geo:isClosed</ows:Identifier>
  985. <ows:Title>Closed Test</ows:Title>
  986. <ows:Abstract>Tests if the initial vertex equals the final vertex in a linear geometry. Points and polygons always return True.</ows:Abstract>
  987. </wps:Process>
  988. <wps:Process wps:processVersion="1.0.0">
  989. <ows:Identifier>geo:isEmpty</ows:Identifier>
  990. <ows:Title>Empty Test</ows:Title>
  991. <ows:Abstract>Tests if a geometry contains no vertices.</ows:Abstract>
  992. </wps:Process>
  993. <wps:Process wps:processVersion="1.0.0">
  994. <ows:Identifier>geo:isRing</ows:Identifier>
  995. <ows:Title>Ring Test</ows:Title>
  996. <ows:Abstract>Tests if a geometry is both closed and simple.</ows:Abstract>
  997. </wps:Process>
  998. <wps:Process wps:processVersion="1.0.0">
  999. <ows:Identifier>geo:isSimple</ows:Identifier>
  1000. <ows:Title>Simple Test</ows:Title>
  1001. <ows:Abstract>Tests if a geometry is topologically simple. Points, polygons, closed line strings, and linear rings are always simple. Other geometries are considered simple if no two points are identical.</ows:Abstract>
  1002. </wps:Process>
  1003. <wps:Process wps:processVersion="1.0.0">
  1004. <ows:Identifier>geo:isValid</ows:Identifier>
  1005. <ows:Title>Valid Test</ows:Title>
  1006. <ows:Abstract>Tests if a geometry is topologically valid.</ows:Abstract>
  1007. </wps:Process>
  1008. <wps:Process wps:processVersion="1.0.0">
  1009. <ows:Identifier>geo:isWithinDistance</ows:Identifier>
  1010. <ows:Title>Within Distance Test</ows:Title>
  1011. <ows:Abstract>Tests if the minimum distance between two geometries is less than a tolerance value.</ows:Abstract>
  1012. </wps:Process>
  1013. <wps:Process wps:processVersion="1.0.0">
  1014. <ows:Identifier>geo:length</ows:Identifier>
  1015. <ows:Title>Length</ows:Title>
  1016. <ows:Abstract>Returns the total length of all line segments in a geometry. Measurement is given in the source units, so geographic coordinates are not recommended.</ows:Abstract>
  1017. </wps:Process>
  1018. <wps:Process wps:processVersion="1.0.0">
  1019. <ows:Identifier>geo:numGeometries</ows:Identifier>
  1020. <ows:Title>Geometry Count</ows:Title>
  1021. <ows:Abstract>Returns the total number of elements in a geometry collection. If not a geometry collection, returns 1. If empty, returns 0.</ows:Abstract>
  1022. </wps:Process>
  1023. <wps:Process wps:processVersion="1.0.0">
  1024. <ows:Identifier>geo:numInteriorRing</ows:Identifier>
  1025. <ows:Title>Interior Ring Count</ows:Title>
  1026. <ows:Abstract>Returns the total number of interior rings in a polygonal geometry. Points and lines return 0.</ows:Abstract>
  1027. </wps:Process>
  1028. <wps:Process wps:processVersion="1.0.0">
  1029. <ows:Identifier>geo:numPoints</ows:Identifier>
  1030. <ows:Title>Number of Points</ows:Title>
  1031. <ows:Abstract>Returns the number of vertices in a given geometry.</ows:Abstract>
  1032. </wps:Process>
  1033. <wps:Process wps:processVersion="1.0.0">
  1034. <ows:Identifier>geo:overlaps</ows:Identifier>
  1035. <ows:Title>Overlaps Test</ows:Title>
  1036. <ows:Abstract>Tests if two geometries share some but not all interior points. Points or lines will always return False.</ows:Abstract>
  1037. </wps:Process>
  1038. <wps:Process wps:processVersion="1.0.0">
  1039. <ows:Identifier>geo:pointN</ows:Identifier>
  1040. <ows:Title>Nth Point</ows:Title>
  1041. <ows:Abstract>Returns a point geometry equal to the Nth vertex in a geometry as determined by a given index. First vertex has index 0.</ows:Abstract>
  1042. </wps:Process>
  1043. <wps:Process wps:processVersion="1.0.0">
  1044. <ows:Identifier>geo:polygonize</ows:Identifier>
  1045. <ows:Title>Polygonize</ows:Title>
  1046. <ows:Abstract>Creates a set of polygons from linestrings delineating them. The linestrings must be corrctly noded (i.e. touch only at endpoints).</ows:Abstract>
  1047. </wps:Process>
  1048. <wps:Process wps:processVersion="1.0.0">
  1049. <ows:Identifier>geo:relate</ows:Identifier>
  1050. <ows:Title>Relate Matrix String</ows:Title>
  1051. <ows:Abstract>Returns the DE-9IM intersection matrix string for the spatial relationship between the input geometries. The matrix string is in the form [II][IB][IE][BI][BB][BE][EI][EB][EE] where I=interior, B=boundary, and E=exterior. Matrix symbols are 2, 1, 0 or F.</ows:Abstract>
  1052. </wps:Process>
  1053. <wps:Process wps:processVersion="1.0.0">
  1054. <ows:Identifier>geo:relatePattern</ows:Identifier>
  1055. <ows:Title>Relate Test</ows:Title>
  1056. <ows:Abstract>Tests if the spatial relationship between two geometries matches the given DE-9IM intersection matrix pattern. The pattern is given in the form [II][IB][IE][BI][BB][BE][EI][EB][EE] where I=interior, B=boundary, and E=exterior. Pattern symbols can be 2, 1, 0, F or *.</ows:Abstract>
  1057. </wps:Process>
  1058. <wps:Process wps:processVersion="1.0.0">
  1059. <ows:Identifier>geo:reproject</ows:Identifier>
  1060. <ows:Title>Reproject Geometry</ows:Title>
  1061. <ows:Abstract>Reprojects a given geometry into a supplied coordinate reference system.</ows:Abstract>
  1062. </wps:Process>
  1063. <wps:Process wps:processVersion="1.0.0">
  1064. <ows:Identifier>geo:simplify</ows:Identifier>
  1065. <ows:Title>Simplify</ows:Title>
  1066. <ows:Abstract>Returns a geometry that has been simplified (reduced in vertices) according to the Douglas-Peucker algorithm.</ows:Abstract>
  1067. </wps:Process>
  1068. <wps:Process wps:processVersion="1.0.0">
  1069. <ows:Identifier>geo:splitPolygon</ows:Identifier>
  1070. <ows:Title>Split Polygon</ows:Title>
  1071. <ows:Abstract>Splits a polygon by a linestring</ows:Abstract>
  1072. </wps:Process>
  1073. <wps:Process wps:processVersion="1.0.0">
  1074. <ows:Identifier>geo:startPoint</ows:Identifier>
  1075. <ows:Title>Start Point</ows:Title>
  1076. <ows:Abstract>Returns a point geometry equal to the first vertex of a LineString.</ows:Abstract>
  1077. </wps:Process>
  1078. <wps:Process wps:processVersion="1.0.0">
  1079. <ows:Identifier>geo:symDifference</ows:Identifier>
  1080. <ows:Title>Symmetric Difference</ows:Title>
  1081. <ows:Abstract>Returns a geometry representing the points contained in either one of two geometries but not in both. The result may be a heterogeneous geometry collection.</ows:Abstract>
  1082. </wps:Process>
  1083. <wps:Process wps:processVersion="1.0.0">
  1084. <ows:Identifier>geo:touches</ows:Identifier>
  1085. <ows:Title>Touches Test</ows:Title>
  1086. <ows:Abstract>Tests if two geometries have at least one boundary point in common, but share no interior points.</ows:Abstract>
  1087. </wps:Process>
  1088. <wps:Process wps:processVersion="1.0.0">
  1089. <ows:Identifier>geo:union</ows:Identifier>
  1090. <ows:Title>Union</ows:Title>
  1091. <ows:Abstract>Returns a geometry representing all points contained in any of the geometries in a geometry collection.</ows:Abstract>
  1092. </wps:Process>
  1093. <wps:Process wps:processVersion="1.0.0">
  1094. <ows:Identifier>geo:within</ows:Identifier>
  1095. <ows:Title>Within Test</ows:Title>
  1096. <ows:Abstract>Tests if the first geometry is contained in the second geometry.</ows:Abstract>
  1097. </wps:Process>
  1098. <wps:Process wps:processVersion="1.0.0">
  1099. <ows:Identifier>gs:AddCoverages</ows:Identifier>
  1100. <ows:Title>Add Coverages</ows:Title>
  1101. <ows:Abstract>Returns a raster generated by pixel-by-pixel addition of two source rasters. Source rasters must have the same bounding box and resolution.</ows:Abstract>
  1102. </wps:Process>
  1103. <wps:Process wps:processVersion="1.0.0">
  1104. <ows:Identifier>gs:Aggregate</ows:Identifier>
  1105. <ows:Title>Aggregate</ows:Title>
  1106. <ows:Abstract>Computes one or more aggregation functions on a feature attribute. Functions include Count, Average, Max, Median, Min, StdDev, and Sum.</ows:Abstract>
  1107. </wps:Process>
  1108. <wps:Process wps:processVersion="1.0.0">
  1109. <ows:Identifier>gs:AreaGrid</ows:Identifier>
  1110. <ows:Title>Area Grid</ows:Title>
  1111. <ows:Abstract>Computes a raster grid of given geographic extent with cell values equal to the area the cell represents on the surface of the earth. Area is computed using the EckertIV projection.</ows:Abstract>
  1112. </wps:Process>
  1113. <wps:Process wps:processVersion="1.0.0">
  1114. <ows:Identifier>gs:BarnesSurface</ows:Identifier>
  1115. <ows:Title>BarnesSurface</ows:Title>
  1116. <ows:Abstract>Uses Barnes Analysis to compute an interpolated surface over a set of irregular data points.</ows:Abstract>
  1117. </wps:Process>
  1118. <wps:Process wps:processVersion="1.0.0">
  1119. <ows:Identifier>gs:Bounds</ows:Identifier>
  1120. <ows:Title>Bounds</ows:Title>
  1121. <ows:Abstract>Computes the bounding box of the input features.</ows:Abstract>
  1122. </wps:Process>
  1123. <wps:Process wps:processVersion="1.0.0">
  1124. <ows:Identifier>gs:BufferFeatureCollection</ows:Identifier>
  1125. <ows:Title>Buffer</ows:Title>
  1126. <ows:Abstract>Buffers features by a distance value supplied either as a parameter or by a feature attribute. Calculates buffers based on Cartesian distances.</ows:Abstract>
  1127. </wps:Process>
  1128. <wps:Process wps:processVersion="1.0.0">
  1129. <ows:Identifier>gs:Centroid</ows:Identifier>
  1130. <ows:Title>Centroid</ows:Title>
  1131. <ows:Abstract>Computes the geometric centroids of features</ows:Abstract>
  1132. </wps:Process>
  1133. <wps:Process wps:processVersion="1.0.0">
  1134. <ows:Identifier>gs:Clip</ows:Identifier>
  1135. <ows:Title>Clip</ows:Title>
  1136. <ows:Abstract>Clips (crops) features to a given geometry</ows:Abstract>
  1137. </wps:Process>
  1138. <wps:Process wps:processVersion="1.0.0">
  1139. <ows:Identifier>gs:CollectGeometries</ows:Identifier>
  1140. <ows:Title>Collect Geometries</ows:Title>
  1141. <ows:Abstract>Collects the deafult geometries of the input features and combines them into a single geometry collection</ows:Abstract>
  1142. </wps:Process>
  1143. <wps:Process wps:processVersion="1.0.0">
  1144. <ows:Identifier>gs:Contour</ows:Identifier>
  1145. <ows:Title>Contour</ows:Title>
  1146. <ows:Abstract>Computes contour lines at specified intervals or levels for the values in a raster.</ows:Abstract>
  1147. </wps:Process>
  1148. <wps:Process wps:processVersion="1.0.0">
  1149. <ows:Identifier>gs:Count</ows:Identifier>
  1150. <ows:Title>Count Features</ows:Title>
  1151. <ows:Abstract>Computes the number of features in a feature collection.</ows:Abstract>
  1152. </wps:Process>
  1153. <wps:Process wps:processVersion="1.0.0">
  1154. <ows:Identifier>gs:CropCoverage</ows:Identifier>
  1155. <ows:Title>Crop Coverage</ows:Title>
  1156. <ows:Abstract>Returns the portion of a raster bounded by a given geometry.</ows:Abstract>
  1157. </wps:Process>
  1158. <wps:Process wps:processVersion="1.0.0">
  1159. <ows:Identifier>gs:Feature</ows:Identifier>
  1160. <ows:Title>Feature from Geometry</ows:Title>
  1161. <ows:Abstract>Converts a geometry into a feature collection.</ows:Abstract>
  1162. </wps:Process>
  1163. <wps:Process wps:processVersion="1.0.0">
  1164. <ows:Identifier>gs:GeorectifyCoverage</ows:Identifier>
  1165. <ows:Title>Georectify Coverage</ows:Title>
  1166. <ows:Abstract>Georectifies a raster via Ground Control Points using gdal_warp</ows:Abstract>
  1167. </wps:Process>
  1168. <wps:Process wps:processVersion="1.0.0">
  1169. <ows:Identifier>gs:GetFullCoverage</ows:Identifier>
  1170. <ows:Title>GetFullCoverage</ows:Title>
  1171. <ows:Abstract>Returns a raster from the catalog, with optional filtering</ows:Abstract>
  1172. </wps:Process>
  1173. <wps:Process wps:processVersion="1.0.0">
  1174. <ows:Identifier>gs:Grid</ows:Identifier>
  1175. <ows:Title>Grid</ows:Title>
  1176. <ows:Abstract>Generates a georeferenced regular grid of cells. Output contains the attributes: cell - the cell polygon; id - a unique identifier; centerX and centerY - the ordinates of the cell center.</ows:Abstract>
  1177. </wps:Process>
  1178. <wps:Process wps:processVersion="1.0.0">
  1179. <ows:Identifier>gs:Heatmap</ows:Identifier>
  1180. <ows:Title>Heatmap</ows:Title>
  1181. <ows:Abstract>Computes a heatmap surface over a set of data points and outputs as a single-band raster.</ows:Abstract>
  1182. </wps:Process>
  1183. <wps:Process wps:processVersion="1.0.0">
  1184. <ows:Identifier>gs:Import</ows:Identifier>
  1185. <ows:Title>Import to Catalog</ows:Title>
  1186. <ows:Abstract>Imports a feature collection into the catalog</ows:Abstract>
  1187. </wps:Process>
  1188. <wps:Process wps:processVersion="1.0.0">
  1189. <ows:Identifier>gs:InclusionFeatureCollection</ows:Identifier>
  1190. <ows:Title>Inclusion of Feature Collections</ows:Title>
  1191. <ows:Abstract>Returns a feature collection consisting of the features from the first collection which are spatially contained in at least one feature of the second collection.</ows:Abstract>
  1192. </wps:Process>
  1193. <wps:Process wps:processVersion="1.0.0">
  1194. <ows:Identifier>gs:IntersectionFeatureCollection</ows:Identifier>
  1195. <ows:Title>Intersection of Feature Collections</ows:Title>
  1196. <ows:Abstract>Spatial intersection of two feature collections, incuding combining attributes from both.</ows:Abstract>
  1197. </wps:Process>
  1198. <wps:Process wps:processVersion="1.0.0">
  1199. <ows:Identifier>gs:LRSGeocode</ows:Identifier>
  1200. <ows:Title>Geocode point in LRS</ows:Title>
  1201. <ows:Abstract>Extracts points at a given measure from LRS features</ows:Abstract>
  1202. </wps:Process>
  1203. <wps:Process wps:processVersion="1.0.0">
  1204. <ows:Identifier>gs:LRSMeasure</ows:Identifier>
  1205. <ows:Title>Measure point in LRS</ows:Title>
  1206. <ows:Abstract>Computes the measure of a point along a feature (as feature with attribute lrs_measure). The point is measured along the nearest feature.</ows:Abstract>
  1207. </wps:Process>
  1208. <wps:Process wps:processVersion="1.0.0">
  1209. <ows:Identifier>gs:LRSSegment</ows:Identifier>
  1210. <ows:Title>Extract Segment in LRS</ows:Title>
  1211. <ows:Abstract>Extracts segment between a given start and end measure from LRS features</ows:Abstract>
  1212. </wps:Process>
  1213. <wps:Process wps:processVersion="1.0.0">
  1214. <ows:Identifier>gs:MultiplyCoverages</ows:Identifier>
  1215. <ows:Title>Multiply Coverages</ows:Title>
  1216. <ows:Abstract>Returns a raster generated by pixel-by-pixel multiplication of two source rasters. Source rasters must have the same bounding box and resolution.</ows:Abstract>
  1217. </wps:Process>
  1218. <wps:Process wps:processVersion="1.0.0">
  1219. <ows:Identifier>gs:Nearest</ows:Identifier>
  1220. <ows:Title>Nearest Feature</ows:Title>
  1221. <ows:Abstract>Returns the feature in a given feature collection that has the smallest distance to a given point.</ows:Abstract>
  1222. </wps:Process>
  1223. <wps:Process wps:processVersion="1.0.0">
  1224. <ows:Identifier>gs:PointBuffers</ows:Identifier>
  1225. <ows:Title>Point Buffers</ows:Title>
  1226. <ows:Abstract>Returns a collection of circular buffer polygons with specified radii centered on a given point</ows:Abstract>
  1227. </wps:Process>
  1228. <wps:Process wps:processVersion="1.0.0">
  1229. <ows:Identifier>gs:PointStacker</ows:Identifier>
  1230. <ows:Title>Point Stacker</ows:Title>
  1231. <ows:Abstract>Aggregates a collection of points over a grid into one point per grid cell.</ows:Abstract>
  1232. </wps:Process>
  1233. <wps:Process wps:processVersion="1.0.0">
  1234. <ows:Identifier>gs:PolygonExtraction</ows:Identifier>
  1235. <ows:Title>Polygon Extraction</ows:Title>
  1236. <ows:Abstract>Extracts vector polygons from a raster, based on regions which are equal or in given ranges</ows:Abstract>
  1237. </wps:Process>
  1238. <wps:Process wps:processVersion="1.0.0">
  1239. <ows:Identifier>gs:Query</ows:Identifier>
  1240. <ows:Title>Query</ows:Title>
  1241. <ows:Abstract>Queries a feature collection using an optional filter and an optional list of attributes to include. Can also be used to convert feature collection format.</ows:Abstract>
  1242. </wps:Process>
  1243. <wps:Process wps:processVersion="1.0.0">
  1244. <ows:Identifier>gs:RangeLookup</ows:Identifier>
  1245. <ows:Title>Reclassify</ows:Title>
  1246. <ows:Abstract>Reclassifies a continous raster into integer values defined by a set of ranges</ows:Abstract>
  1247. </wps:Process>
  1248. <wps:Process wps:processVersion="1.0.0">
  1249. <ows:Identifier>gs:RasterAsPointCollection</ows:Identifier>
  1250. <ows:Title>Raster As Point Collection</ows:Title>
  1251. <ows:Abstract>Returns a collection of point features for the pixels of a raster. The band values are provided as attributes.</ows:Abstract>
  1252. </wps:Process>
  1253. <wps:Process wps:processVersion="1.0.0">
  1254. <ows:Identifier>gs:RasterZonalStatistics</ows:Identifier>
  1255. <ows:Title>Raster Zonal Statistics</ows:Title>
  1256. <ows:Abstract>Computes statistics for the distribution of a certain quantity in a set of polygonal zones.</ows:Abstract>
  1257. </wps:Process>
  1258. <wps:Process wps:processVersion="1.0.0">
  1259. <ows:Identifier>gs:RectangularClip</ows:Identifier>
  1260. <ows:Title>Rectangular Clip</ows:Title>
  1261. <ows:Abstract>Clips (crops) features to the specified rectangular extent</ows:Abstract>
  1262. </wps:Process>
  1263. <wps:Process wps:processVersion="1.0.0">
  1264. <ows:Identifier>gs:Reproject</ows:Identifier>
  1265. <ows:Title>Reproject Features</ows:Title>
  1266. <ows:Abstract>Reprojects features into a supplied coordinate reference system. Can also force a feature collection to have a given CRS.</ows:Abstract>
  1267. </wps:Process>
  1268. <wps:Process wps:processVersion="1.0.0">
  1269. <ows:Identifier>gs:ReprojectGeometry</ows:Identifier>
  1270. <ows:Title>Reproject Geometry</ows:Title>
  1271. <ows:Abstract>Reprojects a given geometry into a supplied coordinate reference system.</ows:Abstract>
  1272. </wps:Process>
  1273. <wps:Process wps:processVersion="1.0.0">
  1274. <ows:Identifier>gs:ScaleCoverage</ows:Identifier>
  1275. <ows:Title>Scale Coverage</ows:Title>
  1276. <ows:Abstract>Returns a scaled and translated version of a given raster</ows:Abstract>
  1277. </wps:Process>
  1278. <wps:Process wps:processVersion="1.0.0">
  1279. <ows:Identifier>gs:Simplify</ows:Identifier>
  1280. <ows:Title>Simplify</ows:Title>
  1281. <ows:Abstract>Simplifies feature geometry by reducing vertices using Douglas-Peucker simplification.</ows:Abstract>
  1282. </wps:Process>
  1283. <wps:Process wps:processVersion="1.0.0">
  1284. <ows:Identifier>gs:Snap</ows:Identifier>
  1285. <ows:Title>Snap</ows:Title>
  1286. <ows:Abstract>Returns the feature in a feature collection nearest to a given point. Attributes for distance and bearing are added.</ows:Abstract>
  1287. </wps:Process>
  1288. <wps:Process wps:processVersion="1.0.0">
  1289. <ows:Identifier>gs:StoreCoverage</ows:Identifier>
  1290. <ows:Title>Store Coverage</ows:Title>
  1291. <ows:Abstract>Stores a raster on the server.</ows:Abstract>
  1292. </wps:Process>
  1293. <wps:Process wps:processVersion="1.0.0">
  1294. <ows:Identifier>gs:StyleCoverage</ows:Identifier>
  1295. <ows:Title>Style Coverage</ows:Title>
  1296. <ows:Abstract>Styles a raster using a given SLD and raster symbolizer.</ows:Abstract>
  1297. </wps:Process>
  1298. <wps:Process wps:processVersion="1.0.0">
  1299. <ows:Identifier>gs:Transform</ows:Identifier>
  1300. <ows:Title>Transform</ows:Title>
  1301. <ows:Abstract>Computes a new feature collection from the input one by renaming, deleting, and computing new attributes. Attribute values are specified as ECQL expressions in the form name=expression.</ows:Abstract>
  1302. </wps:Process>
  1303. <wps:Process wps:processVersion="1.0.0">
  1304. <ows:Identifier>gs:UnionFeatureCollection</ows:Identifier>
  1305. <ows:Title>Union Feature Collections</ows:Title>
  1306. <ows:Abstract>Returns single feature collection containing all features from two input feature collections. The output attribute schema is a combination of the attributes from the inputs. Attributes with same name but different types will be converted to strings.</ows:Abstract>
  1307. </wps:Process>
  1308. <wps:Process wps:processVersion="1.0.0">
  1309. <ows:Identifier>gs:Unique</ows:Identifier>
  1310. <ows:Title>Unique</ows:Title>
  1311. <ows:Abstract>Returns the unique values of a given attribute in a feature collection.</ows:Abstract>
  1312. </wps:Process>
  1313. <wps:Process wps:processVersion="1.0.0">
  1314. <ows:Identifier>gs:VectorZonalStatistics</ows:Identifier>
  1315. <ows:Title>Vector Zonal Statistics</ows:Title>
  1316. <ows:Abstract>Computes statistics for the distribution of a given attribute in a set of polygonal zones. Input must be points.</ows:Abstract>
  1317. </wps:Process>
  1318. <wps:Process wps:processVersion="1.0.0">
  1319. <ows:Identifier>gt:VectorToRaster</ows:Identifier>
  1320. <ows:Title>Transform</ows:Title>
  1321. <ows:Abstract>Converts some or all of a feature collection to a raster grid, using an attribute to specify cell values.</ows:Abstract>
  1322. </wps:Process>
  1323. <wps:Process wps:processVersion="1.0.0">
  1324. <ows:Identifier>ras:AddCoverages</ows:Identifier>
  1325. <ows:Title>Add Coverages</ows:Title>
  1326. <ows:Abstract>Returns a raster generated by pixel-by-pixel addition of two source rasters. Source rasters must have the same bounding box and resolution.</ows:Abstract>
  1327. </wps:Process>
  1328. <wps:Process wps:processVersion="1.0.0">
  1329. <ows:Identifier>ras:AreaGrid</ows:Identifier>
  1330. <ows:Title>Area Grid</ows:Title>
  1331. <ows:Abstract>Computes a raster grid of given geographic extent with cell values equal to the area the cell represents on the surface of the earth. Area is computed using the EckertIV projection.</ows:Abstract>
  1332. </wps:Process>
  1333. <wps:Process wps:processVersion="1.0.0">
  1334. <ows:Identifier>ras:Contour</ows:Identifier>
  1335. <ows:Title>Contour</ows:Title>
  1336. <ows:Abstract>Computes contour lines at specified intervals or levels for the values in a raster.</ows:Abstract>
  1337. </wps:Process>
  1338. <wps:Process wps:processVersion="1.0.0">
  1339. <ows:Identifier>ras:CropCoverage</ows:Identifier>
  1340. <ows:Title>Crop Coverage</ows:Title>
  1341. <ows:Abstract>Returns the portion of a raster bounded by a given geometry.</ows:Abstract>
  1342. </wps:Process>
  1343. <wps:Process wps:processVersion="1.0.0">
  1344. <ows:Identifier>ras:MultiplyCoverages</ows:Identifier>
  1345. <ows:Title>Multiply Coverages</ows:Title>
  1346. <ows:Abstract>Returns a raster generated by pixel-by-pixel multiplication of two source rasters. Source rasters must have the same bounding box and resolution.</ows:Abstract>
  1347. </wps:Process>
  1348. <wps:Process wps:processVersion="1.0.0">
  1349. <ows:Identifier>ras:PolygonExtraction</ows:Identifier>
  1350. <ows:Title>Polygon Extraction</ows:Title>
  1351. <ows:Abstract>Extracts vector polygons from a raster, based on regions which are equal or in given ranges</ows:Abstract>
  1352. </wps:Process>
  1353. <wps:Process wps:processVersion="1.0.0">
  1354. <ows:Identifier>ras:RangeLookup</ows:Identifier>
  1355. <ows:Title>Reclassify</ows:Title>
  1356. <ows:Abstract>Reclassifies a continous raster into integer values defined by a set of ranges</ows:Abstract>
  1357. </wps:Process>
  1358. <wps:Process wps:processVersion="1.0.0">
  1359. <ows:Identifier>ras:RasterAsPointCollection</ows:Identifier>
  1360. <ows:Title>Raster As Point Collection</ows:Title>
  1361. <ows:Abstract>Returns a collection of point features for the pixels of a raster. The band values are provided as attributes.</ows:Abstract>
  1362. </wps:Process>
  1363. <wps:Process wps:processVersion="1.0.0">
  1364. <ows:Identifier>ras:RasterZonalStatistics</ows:Identifier>
  1365. <ows:Title>Raster Zonal Statistics</ows:Title>
  1366. <ows:Abstract>Computes statistics for the distribution of a certain quantity in a set of polygonal zones.</ows:Abstract>
  1367. </wps:Process>
  1368. <wps:Process wps:processVersion="1.0.0">
  1369. <ows:Identifier>ras:ScaleCoverage</ows:Identifier>
  1370. <ows:Title>Scale Coverage</ows:Title>
  1371. <ows:Abstract>Returns a scaled and translated version of a given raster</ows:Abstract>
  1372. </wps:Process>
  1373. <wps:Process wps:processVersion="1.0.0">
  1374. <ows:Identifier>ras:StyleCoverage</ows:Identifier>
  1375. <ows:Title>Style Coverage</ows:Title>
  1376. <ows:Abstract>Styles a raster using a given SLD and raster symbolizer.</ows:Abstract>
  1377. </wps:Process>
  1378. <wps:Process wps:processVersion="1.0.0">
  1379. <ows:Identifier>vec:Aggregate</ows:Identifier>
  1380. <ows:Title>Aggregate</ows:Title>
  1381. <ows:Abstract>Computes one or more aggregation functions on a feature attribute. Functions include Count, Average, Max, Median, Min, StdDev, and Sum.</ows:Abstract>
  1382. </wps:Process>
  1383. <wps:Process wps:processVersion="1.0.0">
  1384. <ows:Identifier>vec:BarnesSurface</ows:Identifier>
  1385. <ows:Title>BarnesSurface</ows:Title>
  1386. <ows:Abstract>Uses Barnes Analysis to compute an interpolated surface over a set of irregular data points.</ows:Abstract>
  1387. </wps:Process>
  1388. <wps:Process wps:processVersion="1.0.0">
  1389. <ows:Identifier>vec:Bounds</ows:Identifier>
  1390. <ows:Title>Bounds</ows:Title>
  1391. <ows:Abstract>Computes the bounding box of the input features.</ows:Abstract>
  1392. </wps:Process>
  1393. <wps:Process wps:processVersion="1.0.0">
  1394. <ows:Identifier>vec:BufferFeatureCollection</ows:Identifier>
  1395. <ows:Title>Buffer</ows:Title>
  1396. <ows:Abstract>Buffers features by a distance value supplied either as a parameter or by a feature attribute. Calculates buffers based on Cartesian distances.</ows:Abstract>
  1397. </wps:Process>
  1398. <wps:Process wps:processVersion="1.0.0">
  1399. <ows:Identifier>vec:Centroid</ows:Identifier>
  1400. <ows:Title>Centroid</ows:Title>
  1401. <ows:Abstract>Computes the geometric centroids of features</ows:Abstract>
  1402. </wps:Process>
  1403. <wps:Process wps:processVersion="1.0.0">
  1404. <ows:Identifier>vec:Clip</ows:Identifier>
  1405. <ows:Title>Clip</ows:Title>
  1406. <ows:Abstract>Clips (crops) features to a given geometry</ows:Abstract>
  1407. </wps:Process>
  1408. <wps:Process wps:processVersion="1.0.0">
  1409. <ows:Identifier>vec:CollectGeometries</ows:Identifier>
  1410. <ows:Title>Collect Geometries</ows:Title>
  1411. <ows:Abstract>Collects the deafult geometries of the input features and combines them into a single geometry collection</ows:Abstract>
  1412. </wps:Process>
  1413. <wps:Process wps:processVersion="1.0.0">
  1414. <ows:Identifier>vec:Count</ows:Identifier>
  1415. <ows:Title>Count Features</ows:Title>
  1416. <ows:Abstract>Computes the number of features in a feature collection.</ows:Abstract>
  1417. </wps:Process>
  1418. <wps:Process wps:processVersion="1.0.0">
  1419. <ows:Identifier>vec:Feature</ows:Identifier>
  1420. <ows:Title>Feature from Geometry</ows:Title>
  1421. <ows:Abstract>Converts a geometry into a feature collection.</ows:Abstract>
  1422. </wps:Process>
  1423. <wps:Process wps:processVersion="1.0.0">
  1424. <ows:Identifier>vec:Grid</ows:Identifier>
  1425. <ows:Title>Grid</ows:Title>
  1426. <ows:Abstract>Generates a georeferenced regular grid of cells. Output contains the attributes: cell - the cell polygon; id - a unique identifier; centerX and centerY - the ordinates of the cell center.</ows:Abstract>
  1427. </wps:Process>
  1428. <wps:Process wps:processVersion="1.0.0">
  1429. <ows:Identifier>vec:Heatmap</ows:Identifier>
  1430. <ows:Title>Heatmap</ows:Title>
  1431. <ows:Abstract>Computes a heatmap surface over a set of data points and outputs as a single-band raster.</ows:Abstract>
  1432. </wps:Process>
  1433. <wps:Process wps:processVersion="1.0.0">
  1434. <ows:Identifier>vec:InclusionFeatureCollection</ows:Identifier>
  1435. <ows:Title>Inclusion of Feature Collections</ows:Title>
  1436. <ows:Abstract>Returns a feature collection consisting of the features from the first collection which are spatially contained in at least one feature of the second collection.</ows:Abstract>
  1437. </wps:Process>
  1438. <wps:Process wps:processVersion="1.0.0">
  1439. <ows:Identifier>vec:IntersectionFeatureCollection</ows:Identifier>
  1440. <ows:Title>Intersection of Feature Collections</ows:Title>
  1441. <ows:Abstract>Spatial intersection of two feature collections, incuding combining attributes from both.</ows:Abstract>
  1442. </wps:Process>
  1443. <wps:Process wps:processVersion="1.0.0">
  1444. <ows:Identifier>vec:LRSGeocode</ows:Identifier>
  1445. <ows:Title>Geocode point in LRS</ows:Title>
  1446. <ows:Abstract>Extracts points at a given measure from LRS features</ows:Abstract>
  1447. </wps:Process>
  1448. <wps:Process wps:processVersion="1.0.0">
  1449. <ows:Identifier>vec:LRSMeasure</ows:Identifier>
  1450. <ows:Title>Measure point in LRS</ows:Title>
  1451. <ows:Abstract>Computes the measure of a point along a feature (as feature with attribute lrs_measure). The point is measured along the nearest feature.</ows:Abstract>
  1452. </wps:Process>
  1453. <wps:Process wps:processVersion="1.0.0">
  1454. <ows:Identifier>vec:LRSSegment</ows:Identifier>
  1455. <ows:Title>Extract Segment in LRS</ows:Title>
  1456. <ows:Abstract>Extracts segment between a given start and end measure from LRS features</ows:Abstract>
  1457. </wps:Process>
  1458. <wps:Process wps:processVersion="1.0.0">
  1459. <ows:Identifier>vec:Nearest</ows:Identifier>
  1460. <ows:Title>Nearest Feature</ows:Title>
  1461. <ows:Abstract>Returns the feature in a given feature collection that has the smallest distance to a given point.</ows:Abstract>
  1462. </wps:Process>
  1463. <wps:Process wps:processVersion="1.0.0">
  1464. <ows:Identifier>vec:PointBuffers</ows:Identifier>
  1465. <ows:Title>Point Buffers</ows:Title>
  1466. <ows:Abstract>Returns a collection of circular buffer polygons with specified radii centered on a given point</ows:Abstract>
  1467. </wps:Process>
  1468. <wps:Process wps:processVersion="1.0.0">
  1469. <ows:Identifier>vec:PointStacker</ows:Identifier>
  1470. <ows:Title>Point Stacker</ows:Title>
  1471. <ows:Abstract>Aggregates a collection of points over a grid into one point per grid cell.</ows:Abstract>
  1472. </wps:Process>
  1473. <wps:Process wps:processVersion="1.0.0">
  1474. <ows:Identifier>vec:Query</ows:Identifier>
  1475. <ows:Title>Query</ows:Title>
  1476. <ows:Abstract>Queries a feature collection using an optional filter and an optional list of attributes to include. Can also be used to convert feature collection format.</ows:Abstract>
  1477. </wps:Process>
  1478. <wps:Process wps:processVersion="1.0.0">
  1479. <ows:Identifier>vec:RectangularClip</ows:Identifier>
  1480. <ows:Title>Rectangular Clip</ows:Title>
  1481. <ows:Abstract>Clips (crops) features to the specified rectangular extent</ows:Abstract>
  1482. </wps:Process>
  1483. <wps:Process wps:processVersion="1.0.0">
  1484. <ows:Identifier>vec:Reproject</ows:Identifier>
  1485. <ows:Title>Reproject Features</ows:Title>
  1486. <ows:Abstract>Reprojects features into a supplied coordinate reference system. Can also force a feature collection to have a given CRS.</ows:Abstract>
  1487. </wps:Process>
  1488. <wps:Process wps:processVersion="1.0.0">
  1489. <ows:Identifier>vec:Simplify</ows:Identifier>
  1490. <ows:Title>Simplify</ows:Title>
  1491. <ows:Abstract>Simplifies feature geometry by reducing vertices using Douglas-Peucker simplification.</ows:Abstract>
  1492. </wps:Process>
  1493. <wps:Process wps:processVersion="1.0.0">
  1494. <ows:Identifier>vec:Snap</ows:Identifier>
  1495. <ows:Title>Snap</ows:Title>
  1496. <ows:Abstract>Returns the feature in a feature collection nearest to a given point. Attributes for distance and bearing are added.</ows:Abstract>
  1497. </wps:Process>
  1498. <wps:Process wps:processVersion="1.0.0">
  1499. <ows:Identifier>vec:Transform</ows:Identifier>
  1500. <ows:Title>Transform</ows:Title>
  1501. <ows:Abstract>Computes a new feature collection from the input one by renaming, deleting, and computing new attributes. Attribute values are specified as ECQL expressions in the form name=expression.</ows:Abstract>
  1502. </wps:Process>
  1503. <wps:Process wps:processVersion="1.0.0">
  1504. <ows:Identifier>vec:UnionFeatureCollection</ows:Identifier>
  1505. <ows:Title>Union Feature Collections</ows:Title>
  1506. <ows:Abstract>Returns single feature collection containing all features from two input feature collections. The output attribute schema is a combination of the attributes from the inputs. Attributes with same name but different types will be converted to strings.</ows:Abstract>
  1507. </wps:Process>
  1508. <wps:Process wps:processVersion="1.0.0">
  1509. <ows:Identifier>vec:Unique</ows:Identifier>
  1510. <ows:Title>Unique</ows:Title>
  1511. <ows:Abstract>Returns the unique values of a given attribute in a feature collection.</ows:Abstract>
  1512. </wps:Process>
  1513. <wps:Process wps:processVersion="1.0.0">
  1514. <ows:Identifier>vec:VectorToRaster</ows:Identifier>
  1515. <ows:Title>Transform</ows:Title>
  1516. <ows:Abstract>Converts some or all of a feature collection to a raster grid, using an attribute to specify cell values.</ows:Abstract>
  1517. </wps:Process>
  1518. <wps:Process wps:processVersion="1.0.0">
  1519. <ows:Identifier>vec:VectorZonalStatistics</ows:Identifier>
  1520. <ows:Title>Vector Zonal Statistics</ows:Title>
  1521. <ows:Abstract>Computes statistics for the distribution of a given attribute in a set of polygonal zones. Input must be points.</ows:Abstract>
  1522. </wps:Process>
  1523. </wps:ProcessOfferings>
  1524. <wps:Languages>
  1525. <wps:Default>
  1526. <ows:Language>en-US</ows:Language>
  1527. </wps:Default>
  1528. <wps:Supported>
  1529. <ows:Language>en-US</ows:Language>
  1530. </wps:Supported>
  1531. </wps:Languages>
  1532. </wps:Capabilities>
  1533. <?php
  1534. }
  1535. }