| |
public static System.Drawing.Bitmap GetImage(ESRI.ArcGIS.ADF.Web.UI.WebControls.Map loInputMap, double lpImage_x, double lpImage_y) {
List<GraphicsLayer> changedGraphicsLayers = new List<GraphicsLayer>();
try
{
ArrayList loArrBitmaps = new ArrayList();
ArrayList loArrimgAttr = new ArrayList();
double ldImgheight = lpImage_y;//400
double ldImgwidth = lpImage_x;//600
MapDrawUtility mapUtil = new MapDrawUtility(loInputMap);
mapUtil.GenerateImageOnException = false;
mapUtil.PerformValidation = true;
ESRI.ArcGIS.ADF.Web.MapImage mapImg = null;
//print graphics?
MapResourceManager resources = loInputMap.MapResourceManagerInstance;
foreach (MapResourceItem mri in resources.ResourceItems)
{
MapResource graphics = mri.Resource as MapResource;
if (graphics != null)
{
foreach (GraphicsLayer layer in graphics.Graphics.Tables)
{
if (layer.RenderOnClient)
{
changedGraphicsLayers.Add(layer);
layer.RenderOnClient = false;
}
}
}
}
mapImg = mapUtil.Print(loInputMap.Extent, Convert.ToInt32(lpImage_x), Convert.ToInt32(lpImage_y), 96);
return mapImg.GetImage();
}
catch (SystemException loEx)
{
return null;
}
finally {
if (changedGraphicsLayers.Count != 0)
{
// set the renderonclient property back to previous
foreach (GraphicsLayer layer in changedGraphicsLayers)
{
layer.RenderOnClient = true;
}
}
}
} |