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); }
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(); }
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(); } }
/// <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); }
public frmSymbology(IRasterLayer rasterLayer, IMapControl4 mainMap) { InitializeComponent(); m_RasterLayer = rasterLayer; m_MainMap = mainMap; }
/// <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); }
/// <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("实体表创建成功!"); }
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; }