/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { // TODO: Add cmdSaveEdit.OnClick implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; pTinEdit.Save(); }
/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { // TODO: Add CmdStartEditTinLayer.OnClick implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; pTinEdit.StartEditing(); }
//根据创建的点要素做tin public void CreatTINs() { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); Workspace = workspaceFactory.OpenFromFile(workspacepath, 0); IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)Workspace; //new tin 的范围 tin = new TinClass(); tin.Init(tinpath); IEnvelope EnvO = tin.Extent; IEnvelope Env = new EnvelopeClass(); Env.XMax = EnvO.XMax + 10; Env.YMax = EnvO.YMax + 10; Env.ZMax = EnvO.ZMax + 100; Env.XMin = EnvO.XMin + 10; Env.YMin = EnvO.YMin + 10; Env.ZMin = EnvO.ZMin + 100; // Instantiate a new empty TIN. ITinEdit[] TinEdit = new ITinEdit[SurfaceCount + 1]; object overwrite = true; for (int i = 0; i < SurfaceCount + 1; i++) { TinEdit[i] = new TinClass(); TinEdit[i].InitNew(Env); TinEdit[i].SaveAs(OutTinPath + "_" + i, ref overwrite); } IFeatureClass[] ISOpointFeatureClass = new IFeatureClass[SurfaceCount + 1]; for (int i = 0; i < SurfaceCount + 1; i++) { ISOpointFeatureClass[i] = featureWorkspace.OpenFeatureClass("Node_" + i); IGeometryCollection MultipointGeometryCollection = new MultipointClass(); MakeZAware(MultipointGeometryCollection as IGeometry); for (int p = 0; p < NodeCount - 4; p++) { IPoint onePoint = ISOpointFeatureClass[i].GetFeature(p + 1).Shape as IPoint; MakeZAware(onePoint); MultipointGeometryCollection.AddGeometry(onePoint); } (TinEdit[i] as ITinEdit2).SetToConstrainedDelaunay(); TinEdit[i].AddShapeZ(MultipointGeometryCollection as IGeometry, esriTinSurfaceType.esriTinMassPoint, 0, _missing); TinEdit[i].Save(); } }
/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { // TODO: Add CmdStopEditTinLayer.OnClick implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; if (MessageBox.Show("ÊÇ·ñ±£´æ?", "Ìáʾ", MessageBoxButtons.YesNo) == DialogResult.Yes) { pTinEdit.StopEditing(true); } else { pTinEdit.StopEditing(false); } }
public override void OnMouseDown(int Button, int Shift, int X, int Y) { // TODO: Add ToolModefyTINNode.OnMouseDown implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; frmModifyNode.m_pTinEdit = pTinEdit; frmModifyNode.m_pTinNode = pNode; frmModifyNode.setDoubleInputValue(pNode.Z); frmModifyNode.setBttonEnable(true); IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; frmModifyNode.m_pMapCtr = pMapCtr; pMovePtFeedBack.Stop(); //IPoint pt = new PointClass(); //pMovePtFeedBack.Start(pt, pt); }
public override void OnDblClick() { base.OnDblClick(); ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; frmAddTINPlane.pTinEdit = pTinEdit; if (mNewPolygonFeedback != null) { IPolygon polygon = mNewPolygonFeedback.Stop(); frmAddTINPlane.pGeometry = polygon; frmAddTINPlane.setButtonOkEnable(true); frmAddTINPlane.CalPlaneHeight(); IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; frmAddTINPlane.pMapCtr = pMapCtr; mNewPolygonFeedback = null; } }
public override void OnMouseDown(int Button, int Shift, int X, int Y) { // TODO: Add ToolDeleteTINNode.OnMouseDown implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; pTinEdit.DeleteNode(pNode.Index); IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; if (pMapCtr != null) { pMapCtr.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } pMovePtFeedBack.Stop(); IPoint pt = new PointClass(); pMovePtFeedBack.Start(pt, pt); }
public override void OnMouseDown(int Button, int Shift, int X, int Y) { // TODO: Add toolAddTinNode.OnMouseDown implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; pTinEdit.AddPointZ(pAddedPoint, 0); IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; if (pMapCtr != null) { pMapCtr.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } IPageLayoutControl pLayoutCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IPageLayoutControl; if (pLayoutCtr != null) { pLayoutCtr.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } }
public override void OnDblClick() { ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; if (mNewPolygonFeedback != null) { IPolygon polygon = mNewPolygonFeedback.Stop(); ITinSelection tinselection = pTinEdit as ITinSelection; tinselection.SelectByArea(esriTinElementType.esriTinNode, polygon, true, true, esriTinSelectionType.esriTinSelectionAdd); pTinEdit.DeleteSelectedNodes(); mNewPolygonFeedback = null; IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; if (pMapCtr != null) { pMapCtr.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } } base.OnDblClick(); }
public override void OnMouseMove(int Button, int Shift, int X, int Y) { // TODO: Add ToolModefyTINNode.OnMouseMove implementation ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; ITinAdvanced pTinAdvanced = (ITinAdvanced)pTin; IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; if (pMapCtr != null) { IPoint mapPoint = pMapCtr.ToMapPoint(X, Y); ITinNode pTINNode = new TinNodeClass(); double distance = 0; pTinAdvanced.QueryNearestNode(mapPoint, pTINNode, ref distance); pNode = pTINNode; IPoint pt = new PointClass(); pt.PutCoords(pNode.X, pNode.Y); pMovePtFeedBack.MoveTo(pt); } }
/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { // TODO: Add CmdTinSaveAs.OnClick implementation SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = ""; if (dlg.ShowDialog() == DialogResult.OK) { ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; try { object ob = true; pTin.SaveAs(dlg.FileName, ref ob); MessageBox.Show("±£´æ" + dlg.FileName + "³É¹¦£¡"); } catch (SystemException ee) { MessageBox.Show(ee.Message); } } }
public override void OnMouseMove(int Button, int Shift, int X, int Y) { ITin pTin = pTinLayer.Dataset; ITinEdit pTinEdit = pTin as ITinEdit; ISurface pSurface = ((ITinAdvanced)pTin).Surface; IMapControl2 pMapCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IMapControl2; //在mapctr操作 if (pMapCtr != null) { IPoint mapPoint = pMapCtr.ToMapPoint(X, Y); IZAware za = mapPoint as IZAware; za.ZAware = true; double zVal; if (frmAddTINNode.bFromSurface == true) { zVal = pSurface.GetElevation(mapPoint); if (double.IsNaN(zVal)) { zVal = 0; } frmAddTINNode.SetdoubleInputHeightValue(zVal); } else { zVal = frmAddTINNode.dHeight; if (double.IsNaN(zVal)) { zVal = 0; } } mapPoint.Z = zVal; pAddedPoint = mapPoint; } //在layout控件操作取不到z值 else { IPageLayoutControl pLayoutCtr = (((IToolbarControl)m_hookHelper.Hook).Buddy) as IPageLayoutControl; //if (pLayoutCtr.ActiveView.FocusMap.Equals(pMap)) IPoint mapPoint = pLayoutCtr.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y); IZAware za = mapPoint as IZAware; za.ZAware = true; double zVal; if (frmAddTINNode.bFromSurface == true) { zVal = pSurface.GetElevation(mapPoint); if (double.IsNaN(zVal)) { zVal = 0; } frmAddTINNode.SetdoubleInputHeightValue(zVal); } else { zVal = frmAddTINNode.dHeight; if (double.IsNaN(zVal)) { zVal = 0; } } mapPoint.Z = zVal; pAddedPoint = mapPoint; } }