public void Apply(string BBW, string BBN, string mapLayerName, string output_path, string output_filename)
        {
            try
            {
                MapServerParameters.BBOXW = BBW;
                MapServerParameters.BBOXN = BBN;
                MapServerParameters.layer = mapLayerName;
                MapServerParameters.URLBuilder();

                if (MapServerParameters.WMTS)
                {
                    GetMapFromWMTS wmtsWorker = new GetMapFromWMTS(MapServerParameters.targetURL, MapServerParameters.Username,
                                                                   MapServerParameters.Password, MapServerParameters.WidthMeterScale, MapServerParameters.HeightMeterScale, MapServerParameters.ZoomLevel);
                    Log.WriteLine("Connecting WMTS...");
                    Tile tile = wmtsWorker.Apply(output_path, output_filename);
                    MapServerParameters.BBOXW = tile.westCorner.ToString();
                    MapServerParameters.BBOXN = tile.northCorner.ToString();
                    Log.WriteLine("WMTSWorker finished");
                }
                else
                {
                    GetMapFromWMS wmsWorker = new GetMapFromWMS();
                    Log.WriteLine("Connecting WMS...");
                    wmsWorker.Apply(output_path);
                    Log.WriteLine("WMSWorker finished");
                }
                if (MapServerParameters.Resize > 1)
                {
                    ImageUtils.ImageResize(output_path, output_filename);
                }
            }
            catch (Exception e)
            {
                Log.WriteLine("GetMapFromServiceWorker:" + e.Message);
                Log.WriteLine(e.Source);
                Log.WriteLine(e.StackTrace);
                throw;
            }
        }
        public void Apply(string BBW, string BBN, string mapLayerName, string output_path, string output_filename)
        {
            try
            {
                MapServerParameters.BBOXW = BBW;
                MapServerParameters.BBOXN = BBN;
                MapServerParameters.layer = mapLayerName;
                MapServerParameters.URLBuilder();

                if (MapServerParameters.WMTS)
                {
                    GetMapFromWMTS wmtsWorker = new GetMapFromWMTS(MapServerParameters.targetURL, MapServerParameters.Username,
                       MapServerParameters.Password, MapServerParameters.WidthMeterScale, MapServerParameters.HeightMeterScale, MapServerParameters.ZoomLevel);
                    Log.WriteLine("Connecting WMTS...");
                    Tile tile = wmtsWorker.Apply(output_path,output_filename);
                    MapServerParameters.BBOXW = tile.westCorner.ToString();
                    MapServerParameters.BBOXN = tile.northCorner.ToString();
                    Log.WriteLine("WMTSWorker finished");
                }
                else
                {
                    GetMapFromWMS wmsWorker = new GetMapFromWMS();
                    Log.WriteLine("Connecting WMS...");
                    wmsWorker.Apply(output_path);
                    Log.WriteLine("WMSWorker finished");
                }
                if (MapServerParameters.Resize > 1)
                    ImageUtils.ImageResize(output_path, output_filename);
            }
            catch (Exception e)
            {
                Log.WriteLine("GetMapFromServiceWorker:" + e.Message);
                Log.WriteLine(e.Source);
                Log.WriteLine(e.StackTrace);
                throw;
            }
        }