Exemple #1
0
 /// <summary>
 /// Initializes static members of the <see cref="GisTools"/> class.
 /// </summary>
 static GisTools()
 {
     CoordinateConversionManager = new CoordinateConversionManager();
     GridCellManager             = new GridCellManager();
     GeoJsonUtils  = new GeoJsonUtils();
     GeometryTools = new GeometryTools();
 }
 public CoordinateConversionManager GetCoordinateConversionManager(Boolean refresh)
 {
     if (_coordinateConversionManager.IsNull() || refresh)
     {
         _coordinateConversionManager = new CoordinateConversionManager();
     }
     return(_coordinateConversionManager);
 }
        public void GetConvertedPoint_FromWgs84ToSweref99_ReturnConvertedPoint()
        {
            CoordinateConversionManager conversionManager = new CoordinateConversionManager();

            IPoint            point = new Point(10, 15);
            ICoordinateSystem fromCoordinateSystem = new CoordinateSystem(CoordinateSystemId.WGS84);
            ICoordinateSystem toCoordinateSystem   = new CoordinateSystem(CoordinateSystemId.SWEREF99_TM);
            IPoint            convertedPoint       = conversionManager.GetConvertedPoint(point, fromCoordinateSystem, toCoordinateSystem);

            Assert.AreEqual(-38133.05646984861, convertedPoint.X, 0.001);
            Assert.AreEqual(1664414.4300254737, convertedPoint.Y, 0.001);
        }
        public void GetConvertedPoint_FromWgs84ToGoogleMercator_ReturnConvertedPoint()
        {
            CoordinateConversionManager conversionManager = new CoordinateConversionManager();

            IPoint            point = new Point(10, 15);
            ICoordinateSystem fromCoordinateSystem = new CoordinateSystem(CoordinateSystemId.WGS84);
            ICoordinateSystem toCoordinateSystem   = new CoordinateSystem(CoordinateSystemId.GoogleMercator);
            IPoint            convertedPoint       = conversionManager.GetConvertedPoint(point, fromCoordinateSystem, toCoordinateSystem);

            Assert.AreEqual(1113194.9079327357, convertedPoint.X, 0.001);
            Assert.AreEqual(1689200.1396078924, convertedPoint.Y, 0.001);
        }
        /// <summary>
        /// Get a feture collection from file
        /// </summary>
        /// <param name="userContext"></param>
        /// <param name="fileName">File to get</param>
        /// <param name="coordinateSystemId">State returned coordinate system. None return data as is.</param>
        /// <returns></returns>
        public static FeatureCollection GetMapDataFeatureCollection(IUserContext userContext, string fileName, CoordinateSystemId coordinateSystemId)
        {
            var directory = GetMapDataDirectory(userContext);

            try
            {
                var decompressedStream =
                    new GZipStream(
                        new FileStream(GetMapDataFilePath(directory, fileName, true), FileMode.Open),
                        CompressionMode.Decompress);

                using (var streamReader = new StreamReader(decompressedStream))
                {
                    //Read json from file
                    var featureCollection = JsonConvert.DeserializeObject(
                        streamReader.ReadToEnd(), typeof(FeatureCollection)) as FeatureCollection;

                    streamReader.Close();

                    if (featureCollection == null)
                    {
                        return(null);
                    }

                    var currentCoordinateSystem = GisTools.GeoJsonUtils.FindCoordinateSystem(featureCollection);

                    //Check if requested crs equals file crs
                    if (coordinateSystemId == CoordinateSystemId.None || currentCoordinateSystem.Id == coordinateSystemId)
                    {
                        return(featureCollection);
                    }

                    //Convert coordinates before returning
                    var cm = new CoordinateConversionManager();
                    return(cm.Convert(featureCollection, currentCoordinateSystem, new CoordinateSystem(coordinateSystemId)));
                }
            }
            catch
            {
                return(null);
            }
        }
 public CoordinateConversionManagerTest()
 {
     _coordinateConversionManager = null;
 }