예제 #1
0
        private static StaticCoordinateOperationCompiler.StepCompilationResult CreateGeographicOffset(TransformationCompilationParams opData)
        {
            Contract.Requires(opData != null);
            var latParam    = new KeywordNamedParameterSelector("LAT");
            var lonParam    = new KeywordNamedParameterSelector("LON");
            var heightParam = new KeywordNamedParameterSelector("HEIGHT");

            opData.ParameterLookup.Assign(latParam, lonParam);


            var deltaLatitude  = 0.0;
            var deltaLongitude = 0.0;
            var deltaHeight    = 0.0;

            if (!latParam.IsSelected && !lonParam.IsSelected && !heightParam.IsSelected)
            {
                return(null);
            }

            if (latParam.IsSelected)
            {
                TryGetDouble(latParam.Selection, opData.StepParams.InputUnit, out deltaLatitude);
            }
            if (lonParam.IsSelected)
            {
                TryGetDouble(lonParam.Selection, opData.StepParams.InputUnit, out deltaLongitude);
            }
            if (heightParam.IsSelected)
            {
                NamedParameter.TryGetDouble(heightParam.Selection, out deltaHeight);
            }

            var transformation = new GeographicOffset(deltaLatitude, deltaLongitude, deltaHeight);

            return(new StaticCoordinateOperationCompiler.StepCompilationResult(
                       opData.StepParams,
                       opData.StepParams.InputUnit,
                       transformation));
        }
        private static StaticCoordinateOperationCompiler.StepCompilationResult CreateGeographicOffset(TransformationCompilationParams opData)
        {
            Contract.Requires(opData != null);
            var latParam = new KeywordNamedParameterSelector("LAT");
            var lonParam = new KeywordNamedParameterSelector("LON");
            var heightParam = new KeywordNamedParameterSelector("HEIGHT");
            opData.ParameterLookup.Assign(latParam, lonParam);

            var deltaLatitude = 0.0;
            var deltaLongitude = 0.0;
            var deltaHeight = 0.0;

            if (!latParam.IsSelected && !lonParam.IsSelected && !heightParam.IsSelected)
                return null;

            if (latParam.IsSelected)
                TryGetDouble(latParam.Selection, opData.StepParams.InputUnit, out deltaLatitude);
            if (lonParam.IsSelected)
                TryGetDouble(lonParam.Selection, opData.StepParams.InputUnit, out deltaLongitude);
            if (heightParam.IsSelected)
                NamedParameter.TryGetDouble(heightParam.Selection, out deltaHeight);

            var transformation = new GeographicOffset(deltaLatitude, deltaLongitude, deltaHeight);

            return new StaticCoordinateOperationCompiler.StepCompilationResult(
                opData.StepParams,
                opData.StepParams.InputUnit,
                transformation);
        }