예제 #1
0
 public TileGenerator(MapConfig config)
 {
     _mapConfig       = config;
     _source          = ProviderFactory.CreateSourceProvider(config);
     _tilePathBuilder = _source.GetTilePathBuilder(config.SavePath);
     _worker          = new Core.QueueTaskWorker <TileCoordWrap>(config.RunThreadCount, GetTile, true);
     _totalTile       = _source.TileGrid.TotalTile;
 }
예제 #2
0
        public TileGenerator(MapConfig config)
        {
            if (config.TileSize == null)
            {
                config.TileSize = new int[] { 256, 256 };
            }
            var        tileSize = new Size(config.TileSize);
            var        extent   = new Extent(config.Extent);
            Coordinate origin;

            if (config.Origin == null)
            {
                origin = extent.GetTopLeft();
            }
            else
            {
                origin = new Coordinate(config.Origin);
            }
            if (string.IsNullOrEmpty(config.SavePath))
            {
                config.SavePath = Path.Combine(Environment.CurrentDirectory, "Tiles");
            }

            var tileGrid = new TileGrid(config.Resolutions, extent, origin, tileSize);
            var paras    = new Dictionary <string, object>();

            //paras.Add("FORMAT", config.Paras.Format);
            //paras.Add("VERSION", config.Paras.Version);
            //paras.Add("STYLES", config.Paras.Style);
            //paras.Add("LAYERS", config.Paras.Layers);
            //paras.Add("REQUEST", config.Paras.Request);
            //paras.Add("SRS", config.Paras.Srs);

            _source          = new TileWmsSourceProvider(tileGrid, config.Url, paras);
            _threadCount     = config.RunThreadCount;
            _savePath        = config.SavePath;
            _offsetZoom      = config.OffsetZoom;
            _tilePathBuilder = new DefaultTilePathBuilder(_savePath);
        }