Пример #1
0
        //在OnAfterScreenDraw事件下使用
        public static void Use_OnAfterScreenDraw(AxMapControl mapControl, AxPageLayoutControl axPageLayoutControl)
        {
            IActiveView            pActiveView           = axPageLayoutControl.ActiveView.FocusMap as IActiveView;
            IDisplayTransformation displayTransformation = pActiveView.ScreenDisplay.DisplayTransformation;

            displayTransformation.VisibleBounds = mapControl.Extent;
            axPageLayoutControl.ActiveView.Refresh();
            OperateFile.CopyAndOverwriteMap(mapControl, axPageLayoutControl);
        }
Пример #2
0
        //打开文件函数
        public static void OpenFile(AxMapControl mapControl, AxMapControl mapControl2, AxPageLayoutControl pageLayoutControl)
        {
            OpenFileDialog OpenFdlg = new OpenFileDialog();

            OpenFdlg.Title            = "选择需要打开的文件";
            OpenFdlg.Filter           = "mxd文件|*.mxd|Shape文件|*.shp|IMG文件|*.img|TIF文件|*.tif|所有文件|*.*";
            OpenFdlg.RestoreDirectory = true;
            if (OpenFdlg.ShowDialog() == DialogResult.OK)
            {
                string strFileName = OpenFdlg.FileName;//完全名
                if (strFileName == string.Empty)
                {
                    return;
                }
                string pathName    = System.IO.Path.GetDirectoryName(strFileName);            //位置
                string strFExtendN = System.IO.Path.GetExtension(strFileName);                //后缀名
                string fileName    = System.IO.Path.GetFileNameWithoutExtension(strFileName); //单独的文件名
                string fileNameE   = System.IO.Path.GetFileName(strFileName);                 //文件名和扩展名
                switch (strFExtendN)
                {
                case ".shp":
                    mapControl.AddShapeFile(pathName, fileName);
                    OperateFile.CopyAndOverwriteMap(mapControl, pageLayoutControl);
                    break;

                case ".mxd":
                    if (mapControl.CheckMxFile(strFileName))
                    {
                        mapControl.MousePointer = esriControlsMousePointer.esriPointerHourglass;
                        mapControl.LoadMxFile(strFileName, 0, Type.Missing);
                        mapControl.MousePointer = esriControlsMousePointer.esriPointerDefault;
                        OperateFile.CopyAndOverwriteMap(mapControl, pageLayoutControl);
                    }
                    else
                    {
                        MessageBox.Show("所选文件不是地图文档文件!", "信息提示");
                        return;
                    }
                    break;

                case ".bmp":
                case ".BMP":
                case ".tif":
                case ".TIF":
                case ".jpg":
                case ".JPG":
                case ".img":
                case ".IMG":
                case ".png":
                case ".PNG":
                    IWorkspaceFactory pWSF;
                    pWSF = new RasterWorkspaceFactory();
                    IWorkspace pWS;
                    pWS = pWSF.OpenFromFile(pathName, 0);
                    IRasterWorkspace pRWS;
                    pRWS = pWS as IRasterWorkspace;
                    IRasterDataset pRasterDataset;
                    pRasterDataset = pRWS.OpenRasterDataset(fileNameE);
                    //影像金字塔判断与创建
                    IRasterPyramid pRasPyrmid;
                    pRasPyrmid = pRasterDataset as IRasterDataset as IRasterPyramid;
                    if (pRasPyrmid != null)
                    {
                        if (!(pRasPyrmid.Present))
                        {
                            pRasPyrmid.Create();    //在进度条中说明正在创建金字塔
                        }
                    }
                    IRaster pRaster;
                    pRaster = pRasterDataset.CreateDefaultRaster();
                    IRasterLayer pRasterLayer;
                    pRasterLayer = new RasterLayerClass();
                    pRasterLayer.CreateFromRaster(pRaster);
                    ILayer pLayer = pRasterLayer as ILayer;
                    mapControl.AddLayer(pLayer, 0);
                    OperateFile.CopyAndOverwriteMap(mapControl, pageLayoutControl);
                    OperateFile.ArchieveEagleEyeWhenAddRaster(mapControl2, strFileName);
                    break;
                }
            }
        }
Пример #3
0
 //在OnviewRfeshed事件下使用(联动)
 public static void Use_OnViewRefreshed(AxTOCControl toccControl, AxMapControl mapControl, AxPageLayoutControl axPageLayoutControl)
 {
     toccControl.Update();
     OperateFile.CopyAndOverwriteMap(mapControl, axPageLayoutControl);
 }
Пример #4
0
        private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
        {
            #region 坐标单位
            esriUnits mapUnits = axMapControl1.MapUnits;
            switch (mapUnits)
            {
            case esriUnits.esriCentimeters:
                sMapUnits = "Centimeters";
                break;

            case esriUnits.esriDecimalDegrees:
                sMapUnits = "Decimal Degrees";
                break;

            case esriUnits.esriDecimeters:
                sMapUnits = "Decimeters";
                break;

            case esriUnits.esriFeet:
                sMapUnits = "Feet";
                break;

            case esriUnits.esriInches:
                sMapUnits = "Inches";
                break;

            case esriUnits.esriKilometers:
                sMapUnits = "Kilometers";
                break;

            case esriUnits.esriMeters:
                sMapUnits = "Meters";
                break;

            case esriUnits.esriMiles:
                sMapUnits = "Miles";
                break;

            case esriUnits.esriMillimeters:
                sMapUnits = "Millimeters";
                break;

            case esriUnits.esriNauticalMiles:
                sMapUnits = "NauticalMiles";
                break;

            case esriUnits.esriPoints:
                sMapUnits = "Points";
                break;

            case esriUnits.esriUnknownUnits:
                sMapUnits = "Unknown";
                break;

            case esriUnits.esriYards:
                sMapUnits = "Yards";
                break;
            }
            #endregion
            OperateFile.CopyAndOverwriteMap(axMapControl1, axPageLayoutControl1);
        }