Ejemplo n.º 1
0
 void ILayersView.SetMapBuddy(object map_buddy)
 {
     _mapControl = (IMapControl4)map_buddy;
     this.axTOCControl1.SetBuddyControl(map_buddy);
     _tocContextMenu = new TocContextMenu(map_buddy);
     _tocContextMenu.AddItem(_labelor, false, -1);
     _tocContextMenu.AddItem(_removeLayer, false, -1);
     //_tocContextMenu.AddItem(_layerSym, false, -1);
 }
Ejemplo n.º 2
0
 public frmMain()
 {
     InitializeComponent();
     m_MapControl = (IMapControl4)this.axMapControl1.Object;
     m_MapControltop = (IMapControl4)this.axMapControl2.Object;
     m_MapControlbase = (IMapControl4)this.axMapControl3.Object;
     IMap map = new MapClass();
     map.Name = "Map";
     m_MapControl.DocumentFilename = string.Empty;
     m_MapControl.Map = map;
     //test if it's necessary
     m_MapControl.ActiveView.Refresh();
 }
Ejemplo n.º 3
0
        public GMapView()
        {
            InitializeComponent();
            _mapControl = (IMapControl4)this.axMapControl1.Object;

            _map = new GMap();
            _map.SetHook(_mapControl);
            //_landDetailCmd = new OpenLandDetailCmd();
            //_landDetailCmd.SetMaThuaFieldName("mathua_");
            //_landDetailCmd.XemThongTin += _landDetailCmd_XemThongTin;
            _xemVungGiaDaCongBo = new XemTatCaVungGiaDaCongBo();
            _xemVungGiaDaTinh = new XemTatCaVungGiaDaTinh();
            _setHeSoViTri = new SetHesoVitri();
            //_moBangThuocTinh = new OpenTable();
            //_removeLayer = new RemoveLayerInToc();

            //_xemVungGiaDaTinh.XemVungGiaDat += new XemTatCaVungGiaDaTinh.XemGiaDatEventHandler(_xemVungGiaDaTinh_XemVungGiaDat);
            //_xemVungGiaDaCongBo.XemVungGiaDat += _xemVungGiaDaCongBo_XemVungGiaDat;
            //_moBangThuocTinh.OpenAttributeTable += new OpenTable.OpenTableEventHandler(_moBangThuocTinh_OpenAttributeTable);

            _mapContextMenu = new MapContextMenu(_mapControl);
            _mapContextMenu.SetKeyName("mathua","_mathua");

            //_mapContextMenu.SetLandPriceView("giadatcongbo", _landPriceView);
            //_tocContextMenu = new TocContextMenu(_mapControl);
            //_mapContextMenu.AddItem(_xemVungGiaDaCongBo, false, -1);
            //_contextMenu.AddItem(_landPriceTool, false, -1);
            //_mapContextMenu.AddItem(_xemVungGiaDaTinh, false, -1);
            //_landPriceTool = new Landprices();
            ////_landPriceTool.SetMaThuaFieldName("mathua_");
            //_landPriceTool.XemGiaDat += new Landprices.XemGiaDatEventHandler(_landPriceTool_XemGiaDat);

            //_mapContextMenu.AddItem()

            //_tocContextMenu.AddItem(_removeLayer, false, -1);
            _controller = new MapViewController(this, _map);
            //this._map = new GMap();
            //this._mapView = (IMapView)this;
            //this._layersView = (ILayersView)this.dpnLayers;
            //this._mapViewController = new MapViewController(this._mapView, this._layersView, this._map);
        }
        private void UpdateMapControlWithMarker(IMapControl4 updateMapControl, string action)
        {
            IRgbColor redRgbColor = new RgbColorClass();
            redRgbColor.Red = 255;
            redRgbColor.Green = 0;
            redRgbColor.Blue = 0;

            IRgbColor yellowRgbColor = new RgbColorClass();
            yellowRgbColor.Red = 255;
            yellowRgbColor.Green = 255;
            yellowRgbColor.Blue = 115;

            IRgbColor blackRgbcolor = new RgbColorClass();
            blackRgbcolor.Red = 0;
            blackRgbcolor.Green = 0;
            blackRgbcolor.Blue = 0;

            IRgbColor greenRgbColor = new RgbColorClass();
            greenRgbColor.Red = 0;
            greenRgbColor.Green = 255;
            greenRgbColor.Blue = 0;

            IEnvelope extentEnvelope = updateMapControl.Extent;
            IGraphicsContainer graphicsContainer = updateMapControl.Map.BasicGraphicsLayer as IGraphicsContainer;

            if (action == "DeleteMarker")
            {
                DeleteElement(updateMapControl, action);
            }
            else if (action == "AcceptMarker")
            {
                DeleteElement(updateMapControl, action);
            }

            IMultiLayerMarkerSymbol multiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();

            stdole.IFontDisp esriDefaultMarkerFont = new stdole.StdFontClass() as stdole.IFontDisp;
            esriDefaultMarkerFont.Name = "ESRI Default Marker";
            esriDefaultMarkerFont.Size = Convert.ToDecimal(48);

            IPoint markerLocation = new PointClass();
            markerLocation.SpatialReference = updateMapControl.SpatialReference;

            markerLocation.X = extentEnvelope.LowerLeft.X + extentEnvelope.Width / 10;
            markerLocation.Y = extentEnvelope.LowerLeft.Y + extentEnvelope.Height / (10 * (extentEnvelope.Height / extentEnvelope.Width));

            IMarkerElement markerElement = new MarkerElementClass();
            ((IElement)markerElement).Geometry = markerLocation;

            ISimpleMarkerSymbol backgroundMarkerSymbol = new SimpleMarkerSymbolClass();
            backgroundMarkerSymbol.Color = (IColor)yellowRgbColor;
            backgroundMarkerSymbol.Size = 45;
            backgroundMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSSquare;
            backgroundMarkerSymbol.Outline = true;
            backgroundMarkerSymbol.OutlineColor = blackRgbcolor;
            backgroundMarkerSymbol.OutlineSize = 2;

            multiLayerMarkerSymbol.AddLayer((IMarkerSymbol)backgroundMarkerSymbol);

            if (action == "DeleteMarker")
            {
                ICharacterMarkerSymbol deleteMarkerSymbol = new CharacterMarkerSymbolClass();
                deleteMarkerSymbol.Font = esriDefaultMarkerFont;
                deleteMarkerSymbol.CharacterIndex = 68;
                deleteMarkerSymbol.Color = redRgbColor;
                deleteMarkerSymbol.Size = 48;

                multiLayerMarkerSymbol.AddLayer(deleteMarkerSymbol);

                ((IElementProperties)markerElement).Name = "DeleteMarker";

            }
            else if (action == "AcceptMarker")
            {
                ICharacterMarkerSymbol acceptMarkerSymbol = new CharacterMarkerSymbolClass();

                acceptMarkerSymbol.Font = esriDefaultMarkerFont;
                acceptMarkerSymbol.CharacterIndex = 105;
                acceptMarkerSymbol.Color = greenRgbColor;
                acceptMarkerSymbol.Size = 48;

                multiLayerMarkerSymbol.AddLayer(acceptMarkerSymbol);

                ((IElementProperties)markerElement).Name = "AcceptMarker";
            }

            markerElement.Symbol = (IMarkerSymbol)multiLayerMarkerSymbol;

            graphicsContainer.AddElement((IElement)markerElement, 99);

            updateMapControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }
        private void DeleteElement(IMapControl4 updateMapControl, string action)
        {
            IGraphicsContainer graphicsContainer = updateMapControl.Map.BasicGraphicsLayer as IGraphicsContainer;

            graphicsContainer.Reset();
            IElement currentElement = graphicsContainer.Next();

            while (currentElement != null)
            {
                if (((IElementProperties)currentElement).Name.Equals(action))
                {
                    graphicsContainer.DeleteElement(currentElement);
                }

                currentElement = graphicsContainer.Next();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 闪烁地物
        /// </summary>
        /// <param name="pMapControl"></param>
        /// <param name="pGeometry"></param>
        public static void FlashGeometry(IMapControl4 pMapControl, IGeometry pGeometry)
        {
            ICartographicLineSymbol ipCartographicLineSymbol;
            ISimpleFillSymbol ipSimpleFillSymbol;
            ISimpleMarkerSymbol ipSimpleMarkersymbol;
            ISymbol ipSymbol = null;
            IRgbColor ipColor;
            int Size;

            ipColor = new RgbColor();
            ipColor.Blue = 255;
            Size = 2;

            esriGeometryType type = pGeometry.GeometryType;

            if (type == esriGeometryType.esriGeometryPolyline)
            {
                ipCartographicLineSymbol = new CartographicLineSymbol();
                ipSymbol = (ISymbol)ipCartographicLineSymbol;
                ipSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
                ipCartographicLineSymbol.Width = Size;
                ipCartographicLineSymbol.Color = ipColor;
                ipCartographicLineSymbol.Cap = esriLineCapStyle.esriLCSRound;
            }
            else if (type == esriGeometryType.esriGeometryPolygon)
            {
                ipSimpleFillSymbol = new SimpleFillSymbol();
                ipSymbol = (ISymbol)ipSimpleFillSymbol;
                ipSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
                ipColor.Red = 0;
                ipColor.Blue = 255;
                ipColor.Green = 0;
                ipSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
                ipSimpleFillSymbol.Color = ipColor;
            }
            else if (type == esriGeometryType.esriGeometryPoint || type == esriGeometryType.esriGeometryMultipoint)
            {
                ipSimpleMarkersymbol = new SimpleMarkerSymbol();
                ipSymbol = (ISymbol)ipSimpleMarkersymbol;
                ipSymbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;
                ipSimpleMarkersymbol.Color = ipColor;
                ipSimpleMarkersymbol.Size = 8;
            }
            pMapControl.FlashShape(pGeometry, 2, 100, ipSymbol);
        }
Ejemplo n.º 7
0
 public frmSymbology(IRasterLayer rasterLayer, IMapControl4 mainMap)
 {
     InitializeComponent();
     m_RasterLayer = rasterLayer;
     m_MainMap = mainMap;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 清除当前地图的选中
 /// </summary>
 /// <param name="mapcontrol4"></param>
 public static void ClearSelection(IMapControl4 mapcontrol4)
 {
     mapcontrol4.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
     mapcontrol4.Map.ClearSelection();
     mapcontrol4.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 创建实体表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreateEntiTable_Click(object sender, EventArgs e)
        {
            //显示进度条
            this.labelX1.Visible            = true;
            this.progressBarXEntiDB.Visible = true;

            IWorkspaceFactory2 pWorkspaceFactory = new FileGDBWorkspaceFactoryClass() as IWorkspaceFactory2;
            //20180131
            string path = System.IO.Path.GetDirectoryName(this.txbGdbPath.Text);
            //string entitableName = this.txbEntiName.Text.ToString();
            string entitableName = System.IO.Path.GetFileName(this.txbGdbPath.Text);

            IWorkspace2       pWorkspace       = pWorkspaceFactory.OpenFromFile(path, 0) as IWorkspace2;
            IFeatureWorkspace featureWorkspace = pWorkspace as IFeatureWorkspace;


            IMapControl4         pMainMapControl = ClsControl.MapControlMain;
            IMap                 pMap            = pMainMapControl.Map;
            List <IFeatureLayer> pFeatlayerList  = new List <IFeatureLayer>();

            //把dbf表转换成为ITable
            string dbfPath      = System.IO.Path.GetDirectoryName(this.txbVersionPath.Text);
            string dbfName      = System.IO.Path.GetFileName(this.txbVersionPath.Text);
            ITable versionTable = OpenDBFTable(dbfPath, dbfName);

            int pBarNumberTotal = 0;

            if (pMap != null)
            {
                ClsCommon pClsCommon = new ClsCommon();
                pFeatlayerList = pClsCommon.GetFeatureLayers(pMap);

                ITable entitable = null;

                //如果表存在,就删除数据
                if (pWorkspace.get_NameExists(esriDatasetType.esriDTTable, entitableName))
                {
                    entitable = featureWorkspace.OpenTable(entitableName);
                    //IWorkspaceEdit workspaceEdit = pWorkspace as IWorkspaceEdit;
                    //workspaceEdit.StartEditing(true);
                    //workspaceEdit.StartEditOperation();

                    //ICursor cursor = entitable.Search(null, false);
                    //IRow r = cursor.NextRow();
                    //while (r != null)
                    //{
                    //    r.Delete();
                    //    r = cursor.NextRow();
                    //}
                    //workspaceEdit.StopEditOperation();
                    //workspaceEdit.StopEditing(true);
                }
                //如果表不存在,就创建字段创建表
                else
                {
                    IFields fileds = null;
                    fileds    = CreateEntiTableFields(pWorkspace);
                    entitable = CreateTable(pWorkspace, entitableName, fileds);
                }

                //进度条
                ClsBarSync pBarEntiDB = new ClsBarSync(progressBarXEntiDB);
                pBarEntiDB.SetStep(1);

                foreach (IFeatureLayer pFeatureLay in pFeatlayerList)
                {
                    IFeatureClass pFeatureCls = pFeatureLay.FeatureClass;
                    int           pCount      = pFeatureCls.FeatureCount(null);
                    pBarNumberTotal += pCount;
                    //pBarEntiDB.PerformOneStep();
                }
                pBarEntiDB.SetMax(pBarNumberTotal);
                foreach (IFeatureLayer pFeatureLay in pFeatlayerList)
                {
                    IFeatureClass pFeatureCls     = pFeatureLay.FeatureClass;
                    string        pFeatureLayname = pFeatureLay.Name;
                    FillEntiTable(pFeatureCls, entitable, versionTable, pFeatureLayname, pBarEntiDB);
                    //pBarEntiDB.PerformOneStep();
                }
            }

            //DialogResult dr = MessageBox.Show("内容?", "对话框标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            DialogResult dr = MessageBox.Show("实体表创建成功!", "实体表提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (dr == DialogResult.OK)
            {
                //点确定的代码
                this.Close();
            }
            else
            {
                //点取消的代码
            }
            //MessageBox.Show("实体表创建成功!");
        }
Ejemplo n.º 10
0
 public override void OnCreate(object hook)
 {
     _mapControl = (IMapControl4)hook;
 }
 /// <summary>
 /// 保存线数据
 /// </summary>
 /// <param name="cpllt">线数组</param>
 /// <param name="strFileName">保存的文件名</param>
 /// <param name="strPath">保存路径</param>
 /// <param name="m_mapControl">地图控件</param>
 public static IFeatureLayer SaveCPlLt(List <CPolyline> cpllt, string strFileName, IWorkspace pWorkspace,
                                       IMapControl4 m_mapControl, int intRed = 0, int intGreen = 0, int intBlue = 0, double dblWidth = 1)
 {
     return(CSaveFeature.SaveCGeoEb(cpllt, esriGeometryType.esriGeometryPolyline, strFileName,
                                    null, null, null, intRed, intGreen, intBlue, dblWidth));
 }
        /// <summary>
        /// 保存对应线
        /// </summary>
        /// <param name="CResultPtLt">点数组(包含对应线信息)</param>
        /// <param name="strFileName">文件名</param>
        /// <param name="strPath">保存路径</param>
        /// <param name="m_mapControl">地图控件</param>
        public static void SaveCorrLine(List <List <CCorrCpts> > CtrlCptLtLt, string strFileName, IWorkspace pWorkspace, IMapControl4 m_mapControl)
        {
            List <CPolyline> CtrlCplLt = GenerateCplLt(CtrlCptLtLt);

            SaveCPlLt(CtrlCplLt, strFileName, pWorkspace, m_mapControl, intRed: 255);
        }
        /// <summary>
        /// 保存对应线
        /// </summary>
        /// <param name="CResultPtLt">点数组(包含对应线信息)</param>
        /// <param name="strFileName">文件名</param>
        /// <param name="strPath">保存路径</param>
        /// <param name="m_mapControl">地图控件</param>
        public static void SaveCtrlLine(List <List <CCorrCpts> > CtrlCptLtLt,
                                        string strFileName, double dblStandardLength, IWorkspace pWorkspace, IMapControl4 m_mapControl)
        {
            List <CPolyline> CtrlCplLt = GenerateCplLt(CtrlCptLtLt);
            int intCount            = CtrlCptLtLt.GetCountItem();
            List <CPolyline> cpllt1 = new List <CPolyline>(intCount);
            List <CPolyline> cpllt2 = new List <CPolyline>(intCount);

            foreach (CPolyline CtrlCpl in CtrlCplLt)
            {
                CtrlCpl.SetPolyline();

                if (CCmpMethods.CmpDbl_CoordVerySmall(CtrlCpl.pPolyline.Length, dblStandardLength) == 0)
                {
                    cpllt1.Add(CtrlCpl);
                }
                else
                {
                    cpllt2.Add(CtrlCpl);
                }
            }

            SaveCPlLt(cpllt2, strFileName + "_UnPrecise", pWorkspace, m_mapControl, intRed: 255);
            SaveCPlLt(cpllt1, strFileName + "_Precise", pWorkspace, m_mapControl, intRed: 255);
        }
 public FrmAttributeTable(ref IMapControl4 mapControl, ILayer pLayer)
 {
     InitializeComponent();
     m_mapControl = mapControl;
     m_pLayer     = pLayer;
 }