public TileGenerator(MapConfig config) { _mapConfig = config; _source = ProviderFactory.CreateSourceProvider(config); _outputStrategy = ProviderFactory.CreateOutputStrategy(config); _outputStrategy.Init(config.SavePath); _worker = new Core.QueueTaskWorker <TileCoordWrap>(config.RunThreadCount, GetTile, true); _totalTile = _source.TileGrid.TotalTile; _lastTiles = new Core.LimitedQueue <Core.TileCoord>(config.RunThreadCount); _successTileIndex = config.Result.SuccessTiles; _currTileIndex = config.Result.LastTileIndex; }
public static ITileOutputStrategy CreateOutputStrategy(MapConfig config) { ITileOutputStrategy result = null; switch (config.Output.ToLower()) { case "file": result = new DefaultOutputStrategy(); break; case "sqlite": result = new SqliteOutputStrategy(); break; default: result = new DefaultOutputStrategy(); break; } return(result); }