Loading public/javascript/redmic/modules/form/input/GeographicCoordinatesComponentImpl.js +5 −4 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ define([ , Input , Converter ) { return declare(Input, { // summary: // Implementación de input GeographicCoordinate. Loading Loading @@ -93,7 +94,7 @@ define([ sValue = this._sWidget.get(this.valuePropertyName), obj = {}; obj[this.propertyName] = Converter.DMS2DD(dValue, mValue, sValue); obj[this.propertyName] = Converter.dms2dd(dValue, mValue, sValue); this._emitSetValue(obj); }, Loading Loading @@ -128,7 +129,7 @@ define([ _valueChanged: function(obj) { var value = obj[this.propertyName], translatedObj = Converter.DD2DMS(value); translatedObj = Converter.dd2dms(value); if (translatedObj) { this._dWidget.set(this.valuePropertyName, translatedObj.degrees); Loading public/javascript/redmic/modules/form/input/PointImpl.js +6 −9 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ define([ , ModelImpl , Converter ) { return declare(Input, { // summary: // Implementación de input Point. Loading Loading @@ -139,7 +140,7 @@ define([ res), 1); }, _onInnerModelValueChanged: function(res) { _onInnerModelValueChanged: function() { !this._omitNextInnerModelSerialize && this._publish(this._modelInstance.getChannel("SERIALIZE")); this._omitNextInnerModelSerialize = false; Loading Loading @@ -239,7 +240,7 @@ define([ this._showInputs(this._gcInputsInstances); }, _onGetMapLocationWrapper: function(obj) { _onGetMapLocationWrapper: function() { var objSend = { "point": this._lastCoordinates ? [this._lastCoordinates.x, this._lastCoordinates.y] : null, Loading Loading @@ -459,7 +460,7 @@ define([ return [xValue, yValue]; } var conversion = Converter.convert(inSr, outSr, xValue, yValue); var conversion = Converter.convertCoordinates(inSr, outSr, xValue, yValue); if (conversion) { return [conversion.x, conversion.y]; Loading @@ -481,11 +482,7 @@ define([ return true; } if (Math.abs(v1Dec - v2Dec) > threshold) { return true; } return false; return Math.abs(v1Dec - v2Dec) > threshold; } }); }); public/javascript/redmic/widgets/Converter.js +114 −107 Original line number Diff line number Diff line Loading @@ -5,28 +5,9 @@ define([ ) { // summary: // Widget para convertir coordenadas de un sistema a otro. // Widget para realizar conversión de coordenadas. // description: // Se le pasa una latitud, una longitud, un sistema de coordenadas de origen // y otro de destino al método 'convert' y devuelve las coordenadas convertidas. // Espacios de referencia permitidos var spatialReferences = { '4326': null, // definido por defecto en proj4 '32628': "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs", '3857': null // definido por defecto en proj4 }; var isValidSpatialReference = function(/*String*/ reference) { // summary: // Devuelve si un espacio de referencia está permitido o no. // spatialReference: // Espacio de referencia a comprobar. // returns: // Booleano que indica si es válido o no. return Object.keys(spatialReferences).indexOf(reference.toString ? reference.toString() : reference) !== -1; }; // Expone métodos para validar y convertir elementos relacionados con coordenadas. var _isValidValue = function(/*Integer*/ value) { // summary: Loading @@ -41,8 +22,7 @@ define([ return value !== null && value !== undefined && !isNaN(value); }; return { DMS2DD: function(/*Integer*/ degrees, /*Integer*/ minutes, /*Number*/ seconds) { var _dms2dd = function(/*Integer*/ degrees, /*Integer*/ minutes, /*Number*/ seconds) { // summary: // Convierte de grados, minutos y segundos a grados decimales. // degrees: Loading @@ -55,6 +35,7 @@ define([ // Valor decimal de la coordenada o null si no es válida. if (!_isValidValue(degrees) || !_isValidValue(minutes) || !_isValidValue(seconds)) { return null; // return null } Loading @@ -66,9 +47,9 @@ define([ } return dd; // return Number }, }; DD2DMS: function(/*Number*/ coordinate) { var _dd2dms = function(/*Number*/ coordinate) { // summary: // Convierte de grados decimales a grados, minutos y segundos. // coordinate: Loading Loading @@ -110,11 +91,30 @@ define([ } return dms; // return Object }, }; convert: function(/*String*/ src, /*String*/ dst, /*Number*/ x, /*Number*/ y) { // Espacios de referencia permitidos var _spatialReferences = { '4326': null, // definido por defecto en proj4 '32628': "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs", '3857': null // definido por defecto en proj4 }; var _isValidSpatialReference = function(/*String*/ reference) { // summary: // Convierte coordenadas de un sistema a otro. // Devuelve si un espacio de referencia está permitido o no. // spatialReference: // Espacio de referencia a comprobar. // returns: // Booleano que indica si es válido o no. return Object.keys(_spatialReferences).indexOf(reference.toString ? reference.toString() : reference) !== -1; }; var _convert = function(/*String*/ src, /*String*/ dst, /*Number*/ x, /*Number*/ y) { // summary: // Recibe una latitud, una longitud, un sistema de coordenadas de origen y otro de destino, para devolver // las coordenadas convertidas al sistema de referencia de destino. // src: // Espacio de referencia de entrada. // dst: Loading @@ -126,7 +126,7 @@ define([ // returns: // Objeto con las coordenadas convertidas. if (!isValidSpatialReference(src) || !isValidSpatialReference(dst) || if (!_isValidSpatialReference(src) || !_isValidSpatialReference(dst) || !_isValidValue(x) || !_isValidValue(y)) { return null; } Loading @@ -135,13 +135,20 @@ define([ validSrc = validPrefix + src, validDst = validPrefix + dst; var customSrc = spatialReferences[src], customDst = spatialReferences[dst]; var customSrc = _spatialReferences[src], customDst = _spatialReferences[dst]; customSrc && proj4.defs(validSrc, customSrc); customDst && proj4.defs(validDst, customDst); return proj4(validSrc, validDst, { x: x, y: y }); } }; return { isValidCoordinate: _isValidValue, isValidSpatialReference: _isValidSpatialReference, convertCoordinates: _convert, dms2dd: _dms2dd, dd2dms: _dd2dms }; }); Loading
public/javascript/redmic/modules/form/input/GeographicCoordinatesComponentImpl.js +5 −4 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ define([ , Input , Converter ) { return declare(Input, { // summary: // Implementación de input GeographicCoordinate. Loading Loading @@ -93,7 +94,7 @@ define([ sValue = this._sWidget.get(this.valuePropertyName), obj = {}; obj[this.propertyName] = Converter.DMS2DD(dValue, mValue, sValue); obj[this.propertyName] = Converter.dms2dd(dValue, mValue, sValue); this._emitSetValue(obj); }, Loading Loading @@ -128,7 +129,7 @@ define([ _valueChanged: function(obj) { var value = obj[this.propertyName], translatedObj = Converter.DD2DMS(value); translatedObj = Converter.dd2dms(value); if (translatedObj) { this._dWidget.set(this.valuePropertyName, translatedObj.degrees); Loading
public/javascript/redmic/modules/form/input/PointImpl.js +6 −9 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ define([ , ModelImpl , Converter ) { return declare(Input, { // summary: // Implementación de input Point. Loading Loading @@ -139,7 +140,7 @@ define([ res), 1); }, _onInnerModelValueChanged: function(res) { _onInnerModelValueChanged: function() { !this._omitNextInnerModelSerialize && this._publish(this._modelInstance.getChannel("SERIALIZE")); this._omitNextInnerModelSerialize = false; Loading Loading @@ -239,7 +240,7 @@ define([ this._showInputs(this._gcInputsInstances); }, _onGetMapLocationWrapper: function(obj) { _onGetMapLocationWrapper: function() { var objSend = { "point": this._lastCoordinates ? [this._lastCoordinates.x, this._lastCoordinates.y] : null, Loading Loading @@ -459,7 +460,7 @@ define([ return [xValue, yValue]; } var conversion = Converter.convert(inSr, outSr, xValue, yValue); var conversion = Converter.convertCoordinates(inSr, outSr, xValue, yValue); if (conversion) { return [conversion.x, conversion.y]; Loading @@ -481,11 +482,7 @@ define([ return true; } if (Math.abs(v1Dec - v2Dec) > threshold) { return true; } return false; return Math.abs(v1Dec - v2Dec) > threshold; } }); });
public/javascript/redmic/widgets/Converter.js +114 −107 Original line number Diff line number Diff line Loading @@ -5,28 +5,9 @@ define([ ) { // summary: // Widget para convertir coordenadas de un sistema a otro. // Widget para realizar conversión de coordenadas. // description: // Se le pasa una latitud, una longitud, un sistema de coordenadas de origen // y otro de destino al método 'convert' y devuelve las coordenadas convertidas. // Espacios de referencia permitidos var spatialReferences = { '4326': null, // definido por defecto en proj4 '32628': "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs", '3857': null // definido por defecto en proj4 }; var isValidSpatialReference = function(/*String*/ reference) { // summary: // Devuelve si un espacio de referencia está permitido o no. // spatialReference: // Espacio de referencia a comprobar. // returns: // Booleano que indica si es válido o no. return Object.keys(spatialReferences).indexOf(reference.toString ? reference.toString() : reference) !== -1; }; // Expone métodos para validar y convertir elementos relacionados con coordenadas. var _isValidValue = function(/*Integer*/ value) { // summary: Loading @@ -41,8 +22,7 @@ define([ return value !== null && value !== undefined && !isNaN(value); }; return { DMS2DD: function(/*Integer*/ degrees, /*Integer*/ minutes, /*Number*/ seconds) { var _dms2dd = function(/*Integer*/ degrees, /*Integer*/ minutes, /*Number*/ seconds) { // summary: // Convierte de grados, minutos y segundos a grados decimales. // degrees: Loading @@ -55,6 +35,7 @@ define([ // Valor decimal de la coordenada o null si no es válida. if (!_isValidValue(degrees) || !_isValidValue(minutes) || !_isValidValue(seconds)) { return null; // return null } Loading @@ -66,9 +47,9 @@ define([ } return dd; // return Number }, }; DD2DMS: function(/*Number*/ coordinate) { var _dd2dms = function(/*Number*/ coordinate) { // summary: // Convierte de grados decimales a grados, minutos y segundos. // coordinate: Loading Loading @@ -110,11 +91,30 @@ define([ } return dms; // return Object }, }; convert: function(/*String*/ src, /*String*/ dst, /*Number*/ x, /*Number*/ y) { // Espacios de referencia permitidos var _spatialReferences = { '4326': null, // definido por defecto en proj4 '32628': "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs", '3857': null // definido por defecto en proj4 }; var _isValidSpatialReference = function(/*String*/ reference) { // summary: // Convierte coordenadas de un sistema a otro. // Devuelve si un espacio de referencia está permitido o no. // spatialReference: // Espacio de referencia a comprobar. // returns: // Booleano que indica si es válido o no. return Object.keys(_spatialReferences).indexOf(reference.toString ? reference.toString() : reference) !== -1; }; var _convert = function(/*String*/ src, /*String*/ dst, /*Number*/ x, /*Number*/ y) { // summary: // Recibe una latitud, una longitud, un sistema de coordenadas de origen y otro de destino, para devolver // las coordenadas convertidas al sistema de referencia de destino. // src: // Espacio de referencia de entrada. // dst: Loading @@ -126,7 +126,7 @@ define([ // returns: // Objeto con las coordenadas convertidas. if (!isValidSpatialReference(src) || !isValidSpatialReference(dst) || if (!_isValidSpatialReference(src) || !_isValidSpatialReference(dst) || !_isValidValue(x) || !_isValidValue(y)) { return null; } Loading @@ -135,13 +135,20 @@ define([ validSrc = validPrefix + src, validDst = validPrefix + dst; var customSrc = spatialReferences[src], customDst = spatialReferences[dst]; var customSrc = _spatialReferences[src], customDst = _spatialReferences[dst]; customSrc && proj4.defs(validSrc, customSrc); customDst && proj4.defs(validDst, customDst); return proj4(validSrc, validDst, { x: x, y: y }); } }; return { isValidCoordinate: _isValidValue, isValidSpatialReference: _isValidSpatialReference, convertCoordinates: _convert, dms2dd: _dms2dd, dd2dms: _dd2dms }; });