Example #1
0
        /// <summary>
        /// 根据srid创建Projection
        /// </summary>
        /// <param name="srid"></param>
        /// <returns></returns>
        public static Crs CreateBySrid(int srid)
        {
            var coordSys = SridReader.GetCSbyID(srid);

            if (coordSys != null)
            {
                return(new Crs(coordSys));
            }
            return(null);
        }
Example #2
0
    /// <summary>
    /// Gets a coordinate system from the SRID.csv file
    /// </summary>
    /// <param name="id">EPSG ID</param>
    /// <returns>Coordinate system, or null if SRID was not found.</returns>
    public static ICoordinateSystem GetCSbyID(int id)
    {
        //TODO: Enhance this with an index so we don't have to loop all the lines
        ICoordinateSystemFactory fac = new CoordinateSystemFactory();

        foreach (SridReader.WKTstring wkt in SridReader.GetSRIDs())
        {
            if (wkt.WKID == id)
            {
                return(ProjNet.Converters.WellKnownText.CoordinateSystemWktReader.Parse(wkt.WKT) as ICoordinateSystem);
            }
        }
        return(null);
    }
 public void SetUp()
 {
     // These files (path 1 and 2 below) do not have to exist regarding the tests they are used.
     readerForFilePath1         = new SridReader(@"C:\temp\file1.csv");
     readerForFilePath2         = new SridReader(@"C:\temp\file2.csv");
     readerForEmbeddedResource1 = new SridReader(new List <EmbeddedResourceFileWithCRSdefinitions> {
         EmbeddedResourceFileWithCRSdefinitions.STANDARD_FILE_SHIPPED_WITH_ProjNet
     });
     readerForEmbeddedResource2 = new SridReader(new List <EmbeddedResourceFileWithCRSdefinitions> {
         EmbeddedResourceFileWithCRSdefinitions.SIX_SWEDISH_RT90_CRS_DEFINITIONS_COPIED_FROM_SharpMap_SpatialRefSys_xml
     });
     readerForEmbeddedResource3 = new SridReader(new List <EmbeddedResourceFileWithCRSdefinitions> {
         EmbeddedResourceFileWithCRSdefinitions.STANDARD_FILE_SHIPPED_WITH_ProjNet, EmbeddedResourceFileWithCRSdefinitions.SIX_SWEDISH_RT90_CRS_DEFINITIONS_COPIED_FROM_SharpMap_SpatialRefSys_xml
     });
 }
        private void TestSridReaderForEpsgNumber(
            int epsgNumber,
            string expectedInitialPartOfWellKnownTextString
            )
        {
            var listWithOnlyTheStandardFile = new List <EmbeddedResourceFileWithCRSdefinitions> {
                EmbeddedResourceFileWithCRSdefinitions.STANDARD_FILE_SHIPPED_WITH_ProjNet
            };
            var sridReader = new SridReader(listWithOnlyTheStandardFile);
            //sridReader = new SridReader(@"PATH_TO_FILE\crsTransformations-dotnet\Programmerare.CrsTransformations.Adapter.ProjNet\SRID_ShippedWithProjNet_2_0_0.csv");
            CoordinateSystem crs = sridReader.GetCSbyID(epsgNumber);

            Assert.IsNotNull(crs);
            Assert.AreEqual(
                epsgNumber,
                crs.AuthorityCode
                );
            Assert.That(
                crs.WKT,
                Does.StartWith(expectedInitialPartOfWellKnownTextString)
                );
        }
Example #5
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        lbOutput.Text = "";
        int inSRID  = 0;
        int outSRID = 0;

        if (!int.TryParse(tbSRIDin.Text, out inSRID))
        {
            WriteError("Invalid SRID input number.");
            return;
        }
        if (!int.TryParse(tbSRIDout.Text, out outSRID))
        {
            WriteError("Invalid SRID output number.");
            return;
        }
        //Get input coordinate system by ID from CSV dataset
        ICoordinateSystem csIn = SridReader.GetCSbyID(inSRID);

        if (csIn == null)
        {
            WriteError("Unknown input SRID.");
            return;
        }
        //Get output coordinate system by ID from CSV dataset
        ICoordinateSystem csOut = SridReader.GetCSbyID(outSRID);

        if (csOut == null)
        {
            WriteError("Unknown output SRID.");
            return;
        }
        //Create coordinate transformation instance
        ICoordinateTransformation trans = null;

        try
        {
            trans = new CoordinateTransformationFactory().CreateFromCoordinateSystems(csIn, csOut);
        }
        catch (System.Exception ex)
        {
            WriteError(ex.Message);
            return;
        }
        lbOutput.Text += "<b>Input CS:</b>";
        WriteCoordSys(csIn);
        lbOutput.Text += "<b>Output CS:</b>";
        WriteCoordSys(csOut);
        string points = tbPoints.Text;

        lbOutput.Text += "<b>Transformed points:</b><br/>";
        foreach (string line in points.Split('\n'))
        {
            //Parse each line and transform the points.
            string[] vals = line.Split(',');
            if (vals.Length < 2)
            {
                continue;
            }
            double x = 0;
            double y = 0;
            if (!double.TryParse(vals[0], System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out x))
            {
                WriteError("Error parsing X", true);
                continue;
            }
            if (!double.TryParse(vals[1], System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out y))
            {
                WriteError("Error parsing Y", true);
                continue;
            }
            try
            {
                ///Perform transformation
                double[] result = trans.MathTransform.Transform(new double[] { x, y });
                lbOutput.Text += String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0} , {1}<br/>", result[0], result[1]);
            }
            catch (System.Exception ex)
            {
                WriteError(ex.Message, true);
            }
        }
    }