private void createVerticalCoordinateSystem()
        {
            ISpatialReferenceFactory3 spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            IVerticalDatum            verticalDatum           = spatialReferenceFactory.CreateVerticalDatum((int)esriSRVerticalDatumType.esriSRVertDatum_Taranaki);
            IHVDatum    hvDatum    = verticalDatum as IHVDatum;
            ILinearUnit linearUnit = spatialReferenceFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit;
            IVerticalCoordinateSystemEdit verticalCoordinateSystemEdit = new VerticalCoordinateSystemClass();
            object name              = "New VCoordinateSystem";
            object alias             = "VCoordinateSystem alias";
            object abbreviation      = "abbr";
            object remarks           = "Test for options";
            object usage             = "New Zealand";
            object hvDatumObject     = hvDatum as object;
            object unitObject        = linearUnit as object;
            object verticalShift     = 40 as object;
            object positiveDirection = -1 as object;

            verticalCoordinateSystemEdit.Define(ref name, ref alias, ref abbreviation, ref remarks, ref usage, ref hvDatumObject, ref unitObject, ref verticalShift, ref positiveDirection);
            IVerticalCoordinateSystem verticalCoordinateSystem = verticalCoordinateSystemEdit as IVerticalCoordinateSystem;


            m_map.SpatialReference = verticalCoordinateSystem as ISpatialReference;
            m_activeView.Refresh();
            MessageBox.Show("自定义verticalCoordinateSystem完成!");
        }
        private static ICoordinateSystem ReadCoordinateSystem(string coordinateSystem, WktStreamTokenizer tokenizer)
        {
            ICoordinateSystem returnCS = null;

            switch (coordinateSystem)
            {
            case "VERT_CS":
                IVerticalCoordinateSystem verticalCS = ReadVerticalCoordinateSystem(tokenizer);
                returnCS = verticalCS;
                break;

            case "GEOGCS":
                IGeographicCoordinateSystem geographicCS = ReadGeographicCoordinateSystem(tokenizer);
                returnCS = geographicCS;
                break;

            case "PROJCS":
                IProjectedCoordinateSystem projectedCS = ReadProjectedCoordinateSystem(tokenizer);
                returnCS = projectedCS;
                break;

            case "COMPD_CS":
                ICompoundCoordinateSystem compoundCS = ReadCompoundCoordinateSystem(tokenizer);
                returnCS = compoundCS;
                break;

            case "GEOCCS":
            case "FITTED_CS":
            case "LOCAL_CS":
                throw new InvalidOperationException(String.Format("{0} coordinate system is not recongized.", coordinateSystem));
            }
            return(returnCS);
        }
        public void TestCreateVerticalCoordinateSystem1()
        {
            IVerticalCoordinateSystem vcs = _factory.CreateVerticalCoordinateSystem("5701");

            Assertion.AssertEquals("vcs ctor. 1", "Newlyn", vcs.Name);
            Assertion.AssertEquals("vcs ctor. 2", "Ordnance Datum Newlyn", vcs.VerticalDatum.Name);
        }
        private static string GetVCSDisplayName([NotNull] ISpatialReference spatialReference)
        {
            IVerticalCoordinateSystem vcs =
                SpatialReferenceUtils.GetVerticalCoordinateSystem(spatialReference);

            return(vcs == null
                                       ? LocalizableStrings.QaSchemaSpatialReference_NotDefined
                                       : vcs.Name);
        }
예제 #5
0
        public void TestReadVerticalCoordinateSystem2()
        {
            string testFile = Global.GetUnitTestRootDirectory() + @"\IO\VerticalCoordinateSystem.txt";
            string wkt1     = FileToString(testFile);
            IVerticalCoordinateSystem verticalCoordinateSystem = CoordinateSystemWktReader.Create(wkt1) as IVerticalCoordinateSystem;
            string wkt2 = verticalCoordinateSystem.WKT;
            bool   same = Compare.CompareAgainstString(testFile, wkt2);

            Assertion.AssertEquals("vertical coordinate system 1", true, same);
        }
        protected void ExecuteTests(IVerticalCoordinateSystem source, IVerticalCoordinateSystem target, bool inverse)
        {
            CoordinateTransformationFactory ctf = new CoordinateTransformationFactory();
            ICoordinateTransformation coordinateTransformation = ctf.CreateFromCoordinateSystems(source, target);

            if( inverse )
                ExecuteTests(coordinateTransformation.MathTransform.Inverse);
            else
                ExecuteTests(coordinateTransformation.MathTransform);
        }
        public void TestWriteVerticalCoordinateSystem()
        {
            IVerticalCoordinateSystem VerticalCoordinateSystem = _factory.CreateVerticalCoordinateSystem("5701");
            TextWriter         textwriter         = new StringWriter();
            IndentedTextWriter indentedTextWriter = new IndentedTextWriter(textwriter);

            CoordinateSystemWktWriter.Write(VerticalCoordinateSystem, indentedTextWriter);
            bool same = Compare.CompareAgainstString(Global.GetUnitTestRootDirectory() + @"\IO\VerticalCoordinateSystem.txt", textwriter.ToString());

            Assertion.AssertEquals("test 1", true, same);
        }
예제 #8
0
 private static void WriteVerticalCoordinateSystem(IVerticalCoordinateSystem verticalCoordinateSystem, IndentedTextWriter writer)
 {
     writer.WriteLine("VERT_CS[");
     writer.Indent = writer.Indent + 1;
     writer.WriteLine(String.Format("\"{0}\",", verticalCoordinateSystem.Name));
     WriteDatum(verticalCoordinateSystem.VerticalDatum, writer);
     WriteUnit(verticalCoordinateSystem.VerticalUnit, writer);
     writer.WriteLine(String.Format("AUTHORITY[\"{0}\",\"{1}\"]", verticalCoordinateSystem.Authority, verticalCoordinateSystem.AuthorityCode));
     writer.Indent = writer.Indent - 1;
     writer.WriteLine("]");
 }
 public void TestCreateVerticalCoordinateSystem3()
 {
     try
     {
         IVerticalCoordinateSystem vcs = _factory.CreateVerticalCoordinateSystem("-1");
         Assertion.Fail("ArguementException should be thrown.");
     }
     catch (ArgumentException)
     {
     }
 }
예제 #10
0
        public void TestCreateVerticalCoordinateSystem1()
        {
            IAxisInfo                 axis          = AxisInfo.Altitude;
            ILinearUnit               unit          = LinearUnit.Meters;
            IVerticalDatum            verticalDatum = _csFactory.CreateVerticalDatum("vertdatum", DatumType.IVD_Ellipsoidal);
            IVerticalCoordinateSystem verticalCS    = _csFactory.CreateVerticalCoordinateSystem("test", verticalDatum, unit, axis);

            Assertion.AssertEquals("ctor. 1", "test", verticalCS.Name);
            Assertion.AssertEquals("ctor. 2", verticalDatum, verticalCS.VerticalDatum);
            Assertion.AssertEquals("ctor. 3", unit, verticalCS.VerticalUnit);
            Assertion.AssertEquals("ctor. 4", axis, verticalCS.GetAxis(0));
        }
 private static void WriteVerticalCoordinateSystem(IVerticalCoordinateSystem verticalCoordinateSystem, XmlTextWriter writer)
 {
     writer.WriteStartElement("CS_VerticalCoordinateSystem");
     //writer.WriteAttributeString("Dimension",verticalCoordinateSystem.Dimension.ToString());
     WriteCSInfo(verticalCoordinateSystem, writer);
     for (int i = 0; i < verticalCoordinateSystem.Dimension; i++)
     {
         WriteAxis(verticalCoordinateSystem.GetAxis(i), writer);
     }
     WriteVerticalDatum(verticalCoordinateSystem.VerticalDatum, writer);
     WriteLinearUnit(verticalCoordinateSystem.VerticalUnit, writer);
     writer.WriteEndElement();
 }
예제 #12
0
        private void VCSControlPage_Load(object sender, EventArgs e)
        {
            ISpatialReferenceFactory3 factory = new SpatialReferenceEnvironmentClass();
            TreeNode node = new TreeNode("垂直坐标系文件夹", 0, 1);

            this.treeView1.Nodes.Add(node);
            string path = System.IO.Path.Combine(Application.StartupPath,
                                                 @"Coordinate Systems\Vertical Coordinate Systems");

            if (Directory.Exists(path))
            {
                string[] directories = Directory.GetDirectories(path);
                for (int i = 0; i < directories.Length; i++)
                {
                    TreeNode node2 = new TreeNode(System.IO.Path.GetFileName(directories[i]), 0, 1);
                    node.Nodes.Add(node2);
                    string[] files = Directory.GetFiles(directories[i]);
                    for (int j = 0; j < files.Length; j++)
                    {
                        if (System.IO.Path.GetExtension(files[j]).ToLower() == ".prj")
                        {
                            IVerticalCoordinateSystem system =
                                factory.CreateESRISpatialReferenceInfoFromPRJFile(files[j]) as IVerticalCoordinateSystem;
                            if (system != null)
                            {
                                TreeNode node3 = new TreeNode(System.IO.Path.GetFileName(files[j]), 2, 2)
                                {
                                    Tag = system
                                };
                                node2.Nodes.Add(node3);
                            }
                        }
                    }
                }
            }
            node = new TreeNode("<NONE>", 2, 2)
            {
                Tag = null
            };
            this.treeView1.Nodes.Add(node);
        }
예제 #13
0
        private static ICoordinateSystem ReadCoordinateSystem(XmlTextReader reader)
        {
            //reader.Read();
            ICoordinateSystem returnCS = null;

            switch (reader.Name)
            {
            case "CS_VerticalCoordinateSystem":
                IVerticalCoordinateSystem verticalCS = ReadVerticalCoordinateSystem(reader);
                returnCS = verticalCS;
                break;

            case "CS_GeographicCoordinateSystem":
                IGeographicCoordinateSystem geographicCS = ReadGeographicCoordinateSystem(reader);
                returnCS = geographicCS;
                break;

            case "CS_ProjectedCoordinateSystem":
                IProjectedCoordinateSystem projectedCS = ReadProjectedCoordinateSystem(reader);
                returnCS = projectedCS;
                break;

            case "CS_CompoundCoordinateSystem":
                ICompoundCoordinateSystem compoundCS = ReadCompoundCoordinateSystem(reader);
                returnCS = compoundCS;
                break;

            case "GEOCCS":
            case "FITTED_CS":
            case "LOCAL_CS":
                throw new InvalidOperationException(String.Format("{0} coordinate system is not recongized.", reader.Name));
                //default:
                //	throw new ParseException(String.Format("Coordinate System {0} was not understoon.",reader.Name));
            }
            //reader.Read();
            return(returnCS);
        }
예제 #14
0
        public static ISpatialReference GetUniqueSpatialReference(
            [NotNull] IEnumerable <ISpatialReference> spatialReferences,
            bool requireEqualVerticalCoordinateSystems)
        {
            Assert.ArgumentNotNull(spatialReferences, nameof(spatialReferences));

            IVerticalCoordinateSystem uniqueVcs  = null;
            ISpatialReference         uniqueSref = null;
            double bestResolution = double.MaxValue;

            foreach (ISpatialReference sref in spatialReferences)
            {
                if (uniqueSref == null)
                {
                    uniqueSref     = sref;
                    bestResolution = SpatialReferenceUtils.GetXyResolution(uniqueSref);
                }
                else
                {
                    if (requireEqualVerticalCoordinateSystems)
                    {
                        IVerticalCoordinateSystem vcs =
                            SpatialReferenceUtils.GetVerticalCoordinateSystem(sref);

                        if (vcs != null)
                        {
                            if (uniqueVcs == null)
                            {
                                uniqueVcs = vcs;
                            }
                            else
                            {
                                if (vcs != uniqueVcs &&
                                    !((IClone)uniqueVcs).IsEqual((IClone)vcs))
                                {
                                    throw new ArgumentException(
                                              string.Format(
                                                  "Defined vertical coordinate systems are not equal: {0}, {1}",
                                                  vcs.Name, uniqueVcs.Name));
                                }
                            }
                        }
                    }

                    if (uniqueSref != sref)
                    {
                        var compareSpatialReferences =
                            (ICompareCoordinateSystems)uniqueSref;

                        if (!compareSpatialReferences.IsEqualNoVCS(sref))
                        {
                            throw new ArgumentException(
                                      string.Format(
                                          "Coordinate systems are not equal: {0}, {1}",
                                          sref.Name, uniqueSref.Name));
                        }

                        // if the resolution is higher --> use as new unique
                        double resolution = SpatialReferenceUtils.GetXyResolution(sref);

                        if (resolution < bestResolution)
                        {
                            bestResolution = resolution;
                            uniqueSref     = sref;
                        }
                    }
                }
            }

            return(uniqueSref);
        }
        /// <summary>
        /// Creates the appropriate object given a string containing XML.
        /// </summary>
        /// <param name="wkt">String containing XML.</param>
        /// <returns>Object representation of the XML.</returns>
        /// <exception cref="ParseException">If a token is not recognised.</exception>
        public static object Create(string wkt)
        {
            object             returnObject = null;
            StringReader       reader       = new StringReader(wkt);
            WktStreamTokenizer tokenizer    = new WktStreamTokenizer(reader);

            tokenizer.NextToken();
            string objectName = tokenizer.GetStringValue();

            switch (objectName)
            {
            case "UNIT":
                IUnit unit = ReadUnit(tokenizer);
                returnObject = unit;
                break;

            case "VERT_DATUM":
                IVerticalDatum verticalDatum = ReadVerticalDatum(tokenizer);
                returnObject = verticalDatum;
                break;

            case "SPHEROID":
                IEllipsoid ellipsoid = ReadEllipsoid(tokenizer);
                returnObject = ellipsoid;
                break;

            case "TOWGS84":
                WGS84ConversionInfo wgsInfo = ReadWGS84ConversionInfo(tokenizer);
                returnObject = wgsInfo;
                break;

            case "DATUM":
                IHorizontalDatum horizontalDatum = ReadHorizontalDatum(tokenizer);
                returnObject = horizontalDatum;
                break;

            case "PRIMEM":
                IPrimeMeridian primeMeridian = ReadPrimeMeridian(tokenizer);
                returnObject = primeMeridian;
                break;

            case "VERT_CS":
                IVerticalCoordinateSystem verticalCS = ReadVerticalCoordinateSystem(tokenizer);
                returnObject = verticalCS;
                break;

            case "GEOGCS":
                IGeographicCoordinateSystem geographicCS = ReadGeographicCoordinateSystem(tokenizer);
                returnObject = geographicCS;
                break;

            case "PROJCS":
                IProjectedCoordinateSystem projectedCS = ReadProjectedCoordinateSystem(tokenizer);
                returnObject = projectedCS;
                break;

            case "COMPD_CS":
                ICompoundCoordinateSystem compoundCS = ReadCompoundCoordinateSystem(tokenizer);
                returnObject = compoundCS;
                break;

            case "GEOCCS":
            case "FITTED_CS":
            case "LOCAL_CS":
                throw new NotSupportedException(String.Format("{0} is not implemented.", objectName));

            default:
                throw new ParseException(String.Format("'{0'} is not recongnized.", objectName));
            }
            reader.Close();
            return(returnObject);
        }
 protected void ExecuteTests(IVerticalCoordinateSystem source, IVerticalCoordinateSystem target)
 {
     ExecuteTests(source, target, false);
 }
예제 #17
0
        public static object Create(XmlTextReader reader)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }
            // we don't want to handle whitespace
            reader.WhitespaceHandling = WhitespaceHandling.None;
            object returnObject = null;

            reader.Read();


            // skip declarions and comments.
            while (reader.NodeType != XmlNodeType.Element)
            {
                reader.Read();
            }

            if (reader.NodeType == XmlNodeType.Element)
            {
                switch (reader.Name)
                {
                case "CS_LinearUnit":
                    ILinearUnit linearUnit = ReadLinearUnit(reader);
                    returnObject = linearUnit;
                    break;

                case "CS_AngularUnit":
                    IAngularUnit angularUnit = ReadAngularUnit(reader);
                    returnObject = angularUnit;
                    break;

                case "CS_VerticalDatum":
                    IVerticalDatum verticalDatum = ReadVerticalDatum(reader);
                    returnObject = verticalDatum;
                    break;

                case "CS_Ellipsoid":
                    IEllipsoid ellipsoid = ReadEllipsoid(reader);
                    returnObject = ellipsoid;
                    break;

                case "CS_WGS84ConversionInfo":
                    WGS84ConversionInfo wgsInfo = ReadWGS84ConversionInfo(reader);
                    returnObject = wgsInfo;
                    break;

                case "CS_HorizontalDatum":
                    IHorizontalDatum horizontalDatum = ReadHorizontalDatum(reader);
                    returnObject = horizontalDatum;
                    break;

                case "CS_PrimeMeridian":
                    IPrimeMeridian primeMeridian = ReadPrimeMeridian(reader);
                    returnObject = primeMeridian;
                    break;

                case "CS_VerticalCoordinateSystem":
                    IVerticalCoordinateSystem verticalCS = ReadVerticalCoordinateSystem(reader);
                    returnObject = verticalCS;
                    break;

                case "CS_GeographicCoordinateSystem":
                    IGeographicCoordinateSystem geographicCS = ReadGeographicCoordinateSystem(reader);
                    returnObject = geographicCS;
                    break;

                case "CS_ProjectedCoordinateSystem":
                    IProjectedCoordinateSystem projectedCS = ReadProjectedCoordinateSystem(reader);
                    returnObject = projectedCS;
                    break;

                case "CS_CompoundCoordinateSystem":
                    ICompoundCoordinateSystem compoundCS = ReadCompoundCoordinateSystem(reader);
                    returnObject = compoundCS;
                    break;

                case "CS_Projection":
                    IProjection projection = ReadProjection(reader);
                    returnObject = projection;
                    break;

                case "CS_CoordinateSystem":
                    // must be a compound coord sys since all other coord system should have been
                    // taken care of by now.
                    reader.Read();
                    ICoordinateSystem coordinateSystem = ReadCompoundCoordinateSystem(reader);
                    reader.Read();
                    returnObject = coordinateSystem;
                    break;

                case "CS_GEOCCS":
                case "CS_FITTED_CS":
                case "CS_LOCAL_CS":
                    throw new NotSupportedException(String.Format("{0} is not implemented.", reader.Name));

                default:
                    throw new ParseException(String.Format("Element type {0} was is not understoon.", reader.Name));
                }
            }

            return(returnObject);
        }
예제 #18
0
파일: frmNewVCS.cs 프로젝트: secondii/Yutai
 private void btnOK_Click(object sender, EventArgs e)
 {
     if (this.textEditName.Text.Length == 0)
     {
         MessageBox.Show("未指定名字,必须为坐标系统指定一个名字!");
     }
     else
     {
         double num;
         if (this.cboLineUnitName.SelectedIndex <= 0)
         {
             num = Convert.ToDouble(this.txtValue.Text);
             ((ILinearUnitEdit)this.iunit_0).DefineEx(this.cboLineUnitName.Text, null, null, null, ref num);
         }
         if (this.rdoVCSBase.SelectedIndex == 0)
         {
             string name = this.cboProjectName.Text;
             if (name.Trim().Length == 0)
             {
                 MessageBox.Show("请选择数据框架!");
                 return;
             }
             this.ihvdatum_0 = new VerticalDatumClass();
             ((IVerticalDatumEdit)this.ihvdatum_0).DefineEx(name, name, name, name);
         }
         else
         {
             if (this.cboDatumName.Text.Trim().Length == 0)
             {
                 MessageBox.Show("请选择数据框架!");
                 return;
             }
             if (this.cboSpheres.SelectedIndex <= 0)
             {
                 double num2;
                 num = Convert.ToDouble(this.txtMajorAxis.Text);
                 if (this.rdoFlattening.Checked)
                 {
                     num2 = 1.0 / Convert.ToDouble(this.txtFlattening.Text);
                 }
                 else
                 {
                     double num3 = Convert.ToDouble(this.txtMiniorAxis.Text);
                     num2 = (num - num3) / num;
                 }
                 ((ISpheroidEdit)this.ispheroid_0).DefineEx(this.cboSpheres.Text, null, null, null, ref num,
                                                            ref num2);
             }
             if (this.cboDatumName.SelectedIndex <= 0)
             {
                 this.ihvdatum_0 = new DatumClass();
                 ((IDatumEdit)this.ihvdatum_0).DefineEx(this.cboDatumName.Text, null, null, null,
                                                        this.ispheroid_0);
             }
         }
         object text              = this.textEditName.Text;
         object alias             = this.textEditName.Text;
         object abbreviation      = this.textEditName.Text;
         object remarks           = this.textEditName.Text;
         object useage            = "everywhere!";
         object hvDatum           = this.ihvdatum_0;
         object projectedUnit     = this.iunit_0;
         object verticalShift     = this.double_0[0];
         object positiveDirection = this.double_0[1];
         if (this.iverticalCoordinateSystem_0 == null)
         {
             this.iverticalCoordinateSystem_0 = new VerticalCoordinateSystemClass();
         }
         (this.iverticalCoordinateSystem_0 as IVerticalCoordinateSystemEdit).Define(ref text, ref alias,
                                                                                    ref abbreviation, ref remarks, ref useage, ref hvDatum, ref projectedUnit, ref verticalShift,
                                                                                    ref positiveDirection);
         base.DialogResult = DialogResult.OK;
     }
 }
예제 #19
0
 private static void WriteVerticalCoordinateSystem(IVerticalCoordinateSystem verticalCoordinateSystem, IndentedTextWriter writer)
 {
     writer.WriteLine("VERT_CS[");
     writer.Indent=writer.Indent+1;
     writer.WriteLine(String.Format(System.Globalization.CultureInfo.InvariantCulture, "\"{0}\",", verticalCoordinateSystem.Name));
     WriteDatum( verticalCoordinateSystem.VerticalDatum, writer );
     WriteUnit( verticalCoordinateSystem.VerticalUnit, writer );
     writer.WriteLine(String.Format(System.Globalization.CultureInfo.InvariantCulture, "AUTHORITY[\"{0}\",\"{1}\"]", verticalCoordinateSystem.Authority, verticalCoordinateSystem.AuthorityCode));
     writer.Indent=writer.Indent-1;
     writer.WriteLine("]");
 }
        public void Test_StaticConstructor()
        {
            IVerticalCoordinateSystem vcs = VerticalCoordinateSystem.Ellipsoidal;

            Assertion.AssertEquals("Test1", "Ellipsoidal", vcs.Name);
        }
예제 #21
0
파일: frmNewVCS.cs 프로젝트: secondii/Yutai
        private void frmNewVCS_Load(object sender, EventArgs e)
        {
            int index;

            if (this.bool_1)
            {
                this.Text = "编辑垂直坐标系";
            }
            else
            {
                this.Text = "新建垂直坐标系";
            }
            this.rdoMiniorAxis.Checked = true;
            this.txtFlattening.Enabled = false;
            if (this.iverticalCoordinateSystem_0 == null)
            {
                this.bool_0 = true;
                index       = -1;
                this.iverticalCoordinateSystem_0 = new VerticalCoordinateSystemClass();
                this.iunit_0    = this.iverticalCoordinateSystem_0.CoordinateUnit;
                this.ihvdatum_0 = this.iverticalCoordinateSystem_0.Datum;
                if (this.ihvdatum_0 is IDatum)
                {
                    this.ispheroid_0 = (this.ihvdatum_0 as IDatum).Spheroid;
                    this.rdoVCSBase.SelectedIndex = 1;
                    index = this.cboDatumName.Properties.Items.IndexOf((this.ihvdatum_0 as IDatum).Name);
                    if (index != -1)
                    {
                        this.cboDatumName.SelectedIndex = index;
                    }
                    else
                    {
                        this.cboDatumName.Text = (this.ihvdatum_0 as IDatum).Name;
                        if (this.cboDatumName.Text == "")
                        {
                            this.cboDatumName.SelectedIndex = 0;
                        }
                        else
                        {
                            index = this.cboSpheres.Properties.Items.IndexOf((this.ihvdatum_0 as IDatum).Spheroid.Name);
                            if (index != -1)
                            {
                                this.cboSpheres.SelectedIndex = index;
                            }
                            else
                            {
                                this.cboSpheres.Text    = (this.ihvdatum_0 as IDatum).Spheroid.Name;
                                this.txtMajorAxis.Text  = this.ispheroid_0.SemiMajorAxis.ToString();
                                this.txtMiniorAxis.Text = this.ispheroid_0.SemiMinorAxis.ToString();
                                double num2 = 1.0 / this.ispheroid_0.Flattening;
                                this.txtFlattening.Text = num2.ToString();
                            }
                        }
                    }
                }
                else
                {
                    this.rdoVCSBase.SelectedIndex = 0;
                    this.cboProjectName.Text      = (this.ihvdatum_0 as IVerticalDatum).Name;
                }
                this.cboLineUnitName.SelectedIndex = 1;
                index = this.cboLineUnitName.Properties.Items.IndexOf(this.iunit_0.Name);
                if (index != -1)
                {
                    this.cboLineUnitName.SelectedIndex = index;
                }
                else
                {
                    this.cboLineUnitName.Text = this.iunit_0.Name;
                    this.txtValue.Text        = (this.iunit_0 as ILinearUnit).MetersPerUnit.ToString();
                }
            }
            else
            {
                this.textEditName.Text = this.iverticalCoordinateSystem_0.Name;
                this.ihvdatum_0        = this.iverticalCoordinateSystem_0.Datum;
                index        = -1;
                this.iunit_0 = this.iverticalCoordinateSystem_0.CoordinateUnit;
                if (this.ihvdatum_0 is IDatum)
                {
                    this.ispheroid_0 = (this.ihvdatum_0 as IDatum).Spheroid;
                    this.rdoVCSBase.SelectedIndex = 1;
                    index = this.cboDatumName.Properties.Items.IndexOf((this.ihvdatum_0 as IDatum).Name);
                    if (index != -1)
                    {
                        this.cboDatumName.SelectedIndex = index;
                    }
                    else
                    {
                        this.cboDatumName.Text = (this.ihvdatum_0 as IDatum).Name;
                        index = this.cboSpheres.Properties.Items.IndexOf((this.ihvdatum_0 as IDatum).Spheroid.Name);
                        if (index != -1)
                        {
                            this.cboSpheres.SelectedIndex = index;
                        }
                        else
                        {
                            this.cboSpheres.Text    = (this.ihvdatum_0 as IDatum).Spheroid.Name;
                            this.txtMajorAxis.Text  = this.ispheroid_0.SemiMajorAxis.ToString();
                            this.txtMiniorAxis.Text = this.ispheroid_0.SemiMinorAxis.ToString();
                            this.txtFlattening.Text = (1.0 / this.ispheroid_0.Flattening).ToString();
                        }
                    }
                }
                else
                {
                    this.rdoVCSBase.SelectedIndex = 0;
                    this.cboProjectName.Text      = (this.ihvdatum_0 as IVerticalDatum).Name;
                }
                index = this.cboLineUnitName.Properties.Items.IndexOf(this.iunit_0.Name);
                if (index != -1)
                {
                    this.cboLineUnitName.SelectedIndex = index;
                }
                else
                {
                    this.cboLineUnitName.Text = this.iunit_0.Name;
                    this.txtValue.Text        = (this.iunit_0 as ILinearUnit).MetersPerUnit.ToString();
                }
                (this.iverticalCoordinateSystem_0 as IVerticalCoordinateSystemGEN).GetParameters(ref this.iparameter_0);
                if (this.iparameter_0[0] != null)
                {
                    this.double_0[0] = this.iparameter_0[0].Value;
                    if (this.iparameter_0[1] != null)
                    {
                        this.double_0[1] = this.iparameter_0[1].Value;
                    }
                }
                this.bool_0 = true;
            }
            this.method_0(this.iparameter_0);
        }