Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | /**
* Classe d'interface des requêtes de type WPS sur le service altimetrique.
* (Factory)
*
* @module Gp.Services.Alti.Request.AltiRequestWPS
* @alias Gp.Services.Alti.Request.AltiRequestWPS
* @private
*/
import Logger from "../../../Utils/LoggerByDefault";
import _ from "../../../Utils/MessagesResources";
import WPS from "../../../Formats/WPS";
import AltiElevationRequest from "./model/AltiElevationRequest";
import AltiProfilRequest from "./model/AltiProfilRequest";
var AltiRequestWPS = {
/**
* Interface unique de construction de la requête.
*
* @method build
* @param {Object} options - options
* @param {Object} options.param.positions - tableau de coordonnées lon/lat
* @param {String} options.param.delimiter - '|'
* @param {Boolean} options.param.indent - false|true
* @param {String} options.param.crs - 'CRS:84'
* @param {String} options.param.sampling - 3
* @param {Boolean} options.param.zonly - false|true
* @param {String} options.param.format - "JSON|XML" (only to POST)
* @param {String} options.wps.service - "WPS"
* @param {String} options.wps.version - "1.0.0"
* @param {String} options.wps.identifier - "gs:WPSElevation|gs:WPSLineElevation"
* @param {String} options.wps.rawdataoutput - "result"
* @param {String} options.wps.request - "Execute"
* @param {String} options.type - "Profil|Elevation"
* @param {String} options.method - GET|POST
* @example
* var options = {
* type : 'Profil', // Elevation
* method : 'GET', // par defaut
* param : {
* positions : [
* {lon:'1.11', lat:'1.11'},
* {lon:'1.10', lat:'1.10'},
* {lon:'1.12', lat:'1.12'}
* ],
* delimiter : ";", // par defaut
* indent : true, // par defaut
* crs : 'EPSG:4326', // par defaut
* format : 'json', // par defaut (only to POST)
* sampling : 3 , // par defaut (only use by Profil)
* zonly : false, // par defaut (only use by Elevation)
* },
* wps : {
* service : 'WPS', // par defaut
* version : '1.0.0', // par defaut
* identifier : 'gs:WPS', // par defaut, Elevation = gs:WPSElevation, Profil = gs:WPSLineElevation
* rawdataoutput : 'result',// par defaut
* request : 'Execute' // par defaut
* }
* };
*/
build : function (options) {
// logger
var logger = Logger.getLogger("AltiRequestWPS");
logger.trace(["AltiRequestWPS::build()"]);
// existance des options
Iif (!options) {
throw new Error(_.getMessage("PARAM_EMPTY", "options"));
}
// type de requete : Altitude ou Profil
// (param. à determiner en fonction des parametres d'entrée)
Iif (!options.type) {
throw new Error(_.getMessage("PARAM_EMPTY", "type (Elevation or Profil)"));
}
// construction du modele de requête
// (test du type d'objet candidat)
var DataObject = null;
switch (options.type) {
case "Elevation":
// surcharge
options.wps.identifier = "gs:WPSElevation";
DataObject = new AltiElevationRequest(options.param);
break;
case "Profil":
// surcharge
options.wps.identifier = "gs:WPSLineElevation";
DataObject = new AltiProfilRequest(options.param);
break;
default:
throw new Error(_.getMessage("PARAM_TYPE", "type (Elevation or Profil)"));
}
// construction de la requête WPS
var settings = {
data : DataObject,
method : options.method,
param : options.wps
};
var rqstWPS = new WPS(settings);
Iif (!rqstWPS.processRequestString()) {
throw new Error("Enable to process request !");
}
return rqstWPS.requestString;
}
};
export default AltiRequestWPS;
|