示例#1
0
 public MapImageGeneratorPool(int maxInstanceCount, string outputDir, string outputUrlBase, string mapConfigDocument)
 {
     for (int i = 0; i < maxInstanceCount; i++)
     {
         try
         {
             IMapImageGenerator gen = new MapImageGeneratorDefault();
             IMap map = MapFactory.LoadMapFrom(mapConfigDocument);
             gen.ApplyMap(map);
             _instances.Add(new MapImageGeneratorInstance(gen));
         }
         catch (Exception ex)
         {
             Log.WriterException(ex);
         }
     }
 }
示例#2
0
        public static Bitmap GetBitmapUseOriResolution(this ICanvas canvas)
        {
            IVectorHostLayer hostLayer = canvas.LayerContainer.VectorHost;

            if (hostLayer == null)
            {
                return(null);
            }
            IMapRuntime runtime = hostLayer.MapRuntime as IMapRuntime;

            if (runtime == null)
            {
                return(null);
            }
            IPrimaryDrawObject priObj = canvas.PrimaryDrawObject;
            Color oBackcolor          = runtime.Map.MapArguments.BackColor;

            try
            {
                Image bitmap = new Bitmap(priObj.Size.Width, priObj.Size.Height, PixelFormat.Format32bppArgb);
                runtime.Map.MapArguments.BackColor = Color.Transparent;
                Envelope imageGeoEnv         = PrjToGeoEnv(priObj, priObj.OriginalEnvelope.Clone());
                MapImageGeneratorDefault map = new MapImageGeneratorDefault(runtime);
                runtime.Host = map as CodeCell.AgileMap.Core.IMapRuntimeHost;
                map.GetMapImage(map.GeoEnvelope2Viewport(imageGeoEnv), new Size(priObj.Size.Width, priObj.Size.Height), ref bitmap);
                return(bitmap as Bitmap);
            }
            finally
            {
                runtime.Host = hostLayer as CodeCell.AgileMap.Core.IMapRuntimeHost;
                runtime.Map.MapArguments.BackColor = oBackcolor;
            }
            //IRenderLayer renderLayer = layer as IRenderLayer;//GeoGridLayer
            //if (filter(layer) && renderLayer.Visible)
            //{
            //    renderLayer.Render(this, drawArgs);
            //}
        }