Quantcast
Channel: Forums - ArcObjects SDKs
Viewing all articles
Browse latest Browse all 1374

Can't load Mxd file in MapControl ?

$
0
0
Hi,

I used below codes to save IMap into byte[] (to store in my database), but I can't load it again, are there anyone know what's wrong ?

Code:

public byte[] SaveMap(AxPageLayoutControl pageLayOut)
{
    IGraphicsContainer graphicsContainer = pageLayOut.GraphicsContainer;
    graphicsContainer.Reset();
    IElement pElement = graphicsContainer.Next();
    while (pElement != null)
    {
          if (pElement is IMapFrame)
          {
              IMapDocument mapDocument = new MapDocumentClass();
              if (File.Exists(@"D:\test.mxd"))
                        File.Delete (@"D:\test.mxd");

              mapDocument.New(@"D:\test.mxd");
              mapDocument.ReplaceContents((IMxdContents)pageLayoutTo2_3.ActiveView.FocusMap);
              mapDocument.Save(true, true);

              System.IO.FileStream objFileStream = new System.IO.FileStream(@"D:\test.mxd", FileMode.Open);
              byte[] result = new byte[objFileStream.Length];
              objFileStream.Read(result, 0, (int)objFileStream.Length);

              return result;
            }
            pElement = graphicsContainer.Next();
      }
}

public void LoadMap(AxPageLayoutControl pageLayOut, byte[] result)
{
    IGraphicsContainer graphicsContainer = pageLayoutTo2_3.GraphicsContainer;
    graphicsContainer.Reset();
    IElement pElement = graphicsContainer.Next();
    while (pElement != null)
    {
          if (pElement is IMapFrame)
          {
             
              System.IO.FileStream oFileStream = new System.IO.FileStream(@"D:\test.mxd", FileMode.Append);
              oFileStream.Write(result, 0, result.Length);

              IMapControl2 map = new MapControlClass();
              map.LoadMxFile(@"D:\test.mxd", Type.Missing, Type.Missing );

              IMapFrame frame = new MapFrameClass();
              frame.Map = map.Map;
              pElement = (IElement)frame;

              pageLayOut.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

              return;
            }
            pElement = graphicsContainer.Next();
      }
}


Viewing all articles
Browse latest Browse all 1374

Trending Articles