Exemplo n.º 1
0
 protected TileSchema()
 {
     this.IsYAxisReversed = false;
     this.zoomLevels      = new Collection <ZoomLevel>();
     this.minZoomLevel    = new ZoomLevel(0);
     this.maxZoomLevel    = new ZoomLevel(); // take the max resolution
 }
Exemplo n.º 2
0
 protected Layer(string id)
 {
     this.minZoomLevel = new ZoomLevel(0);
     this.MaxZoomLevel = new ZoomLevel(); // take the max resolution
     this.id           = id;
     this.Opacity      = 1;
 }
Exemplo n.º 3
0
        public ZoomLevel GetNearestZoomLevel(double resolution)
        {
            InternalChecker.CheckArrayIsEmptyOrNull(zoomLevels, "ZoomLevels");

            var orderedZoomLevels = zoomLevels.OrderByDescending(z => z.Resolution);

            // smaller than smallest
            if (orderedZoomLevels.Last().Resolution > resolution)
            {
                return(orderedZoomLevels.Last());
            }

            // bigger than biggest
            if (orderedZoomLevels.First().Resolution < resolution)
            {
                return(orderedZoomLevels.First());
            }

            ZoomLevel result         = null;
            double    resultDistance = double.MaxValue;

            foreach (var current in orderedZoomLevels)
            {
                double distance = Math.Abs(current.Resolution - resolution);
                if (distance < resultDistance)
                {
                    result         = current;
                    resultDistance = distance;
                }
            }

            return(result);
        }
Exemplo n.º 4
0
 public TileInfo(int column, int row, double resolution, TileSchema tileSchema)
 {
     Width       = 256;
     Height      = 256;
     ZoomLevel   = new ZoomLevel(resolution);
     BoundingBox = GetBoundingBoxByColumnRow(column, row);
 }
 public SphericalMercatorTileSchema()
 {
     Crs             = "EPSG:3857";
     IsYAxisReversed = true;
     MaxExtent       = new BoundingBox(-20037508.342789, -20037508.342789, 20037508.342789, 20037508.342789);
     MinZoomLevel    = new ZoomLevel(0);
     MaxZoomLevel    = new ZoomLevel(); // take the max resolution
 }
Exemplo n.º 6
0
        public TileInfo(int column, int row, double resolution, TileSchema tileSchema)
        {
            this.tileX = -1;
            this.tileY = -1;

            this.width     = 256;
            this.height    = 256;
            this.zoomLevel = new ZoomLevel(resolution);
            this.Extent    = GetBoundingBoxByColumnRow(column, row);
        }
        protected override Collection <ZoomLevel> GetZoomLevelsCore()
        {
            Collection <ZoomLevel> zoomlevels = new Collection <ZoomLevel>();

            for (int i = 0; i < NumberOfZoomLevels; i++)
            {
                var resolution = 2 * ScaleFactor / (1 << i);
                var zoomLevel  = new ZoomLevel(resolution, (i + 1).ToString(CultureInfo.InvariantCulture));
                zoomlevels.Add(zoomLevel);
            }

            return(zoomlevels);
        }
        private static Collection <ZoomLevel> GetZoomLevels(int numberOfZoomLevels)
        {
            Collection <ZoomLevel> zoomlevels = new Collection <ZoomLevel>();

            for (int i = 0; i < numberOfZoomLevels; i++)
            {
                var resolution = 2 * ScaleFactor / (1 << i);
                var zoomLevel  = new ZoomLevel(resolution, (i + 1).ToString(CultureInfo.InvariantCulture));
                zoomlevels.Add(zoomLevel);
            }

            return(zoomlevels);
        }
Exemplo n.º 9
0
        private void InitializeZoomLevels()
        {
            ZoomLevels.Clear();

            double resolution = MaxResolution;

            for (int i = 0; i < numberOfZoomLevels; i++)
            {
                var ZoomLevel = new ZoomLevel(resolution, (i + 1).ToString(CultureInfo.InvariantCulture));
                ZoomLevels.Add(ZoomLevel);

                resolution /= 2;
            }
        }
Exemplo n.º 10
0
        protected virtual Collection <ZoomLevel> GetZoomLevelsCore()
        {
            zoomLevels.Clear();

            double resolution = MaxZoomLevel.Resolution;

            for (int i = 0; i < numberOfZoomLevels; i++)
            {
                var zoomLevel = new ZoomLevel(resolution, (i + 1).ToString(CultureInfo.InvariantCulture));
                zoomLevels.Add(zoomLevel);

                resolution /= 2;
            }

            return(zoomLevels);
        }
Exemplo n.º 11
0
 public void Remove(int tileX, int tileY, ZoomLevel zoomLevel)
 {
     Remove(tileX, tileY, zoomLevel.Id);
 }
Exemplo n.º 12
0
 public T Read(int tileX, int tileY, ZoomLevel zoomLevel)
 {
     return(Read(tileX, tileY, zoomLevel.Id));
 }
Exemplo n.º 13
0
 public void Remove(int column, int row, ZoomLevel zoomLevel)
 {
     Remove(column, row, zoomLevel.Id);
 }
Exemplo n.º 14
0
 public T Get(int column, int row, ZoomLevel zoomLevel)
 {
     return(Get(column, row, zoomLevel.Id));
 }