Example #1
0
        public void WriteXml(XmlWriter writer)
        {
            /*   The GML specification defines an ellipsoid as follows:
             *
             *   <gml:Ellipsoid gml:id="ogrcrs44">
             *     <gml:ellipsoidName>GRS 1980</gml:ellipsoidName>
             *     <gml:ellipsoidID>
             *       <gml:name gml:codeSpace="urn:ogc:def:ellipsoid:EPSG::">7019</gml:name>
             *     </gml:ellipsoidID>
             *     <gml:semiMajorAxis gml:uom="urn:ogc:def:uom:EPSG::9001">6378137</gml:semiMajorAxis>
             *     <gml:secondDefiningParameter>
             *       <gml:inverseFlattening gml:uom="urn:ogc:def:uom:EPSG::9201">298.257222101</gml:inverseFlattening>
             *     </gml:secondDefiningParameter>
             *   </gml:Ellipsoid>
             *
             */

            writer.WriteStartElement(Xml.GmlXmlPrefix, "Ellipsoid", Xml.GmlXmlNamespace);

            writer.WriteElementString(Xml.GmlXmlPrefix, "ellipsoidName", Xml.GmlXmlNamespace, _Name);

            writer.WriteStartElement(Xml.GmlXmlPrefix, "ellipsoidID", Xml.GmlXmlNamespace);
            writer.WriteString(_EPSGNumber.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement(Xml.GmlXmlPrefix, "semiMajorAxis", Xml.GmlXmlNamespace);
            writer.WriteString(SemiMajorAxis.ToMeters().Value.ToString("G17"));
            writer.WriteEndElement();

            writer.WriteStartElement(Xml.GmlXmlPrefix, "secondDefiningParameter", Xml.GmlXmlNamespace);
            writer.WriteElementString(Xml.GmlXmlPrefix, "inverseFlattening", Xml.GmlXmlNamespace,
                                      InverseFlattening.ToString("G17"));
            writer.WriteEndElement();

            writer.WriteEndElement();

            SanityCheck();
            Calculate();
        }
Example #2
0
 public virtual void MakeSchemaCompliant()
 {
     InverseFlattening.MakeSchemaCompliant();
     SemiMinorAxis.MakeSchemaCompliant();
 }