⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.cs

📁 剖面生成器
💻 CS
📖 第 1 页 / 共 3 页
字号:
					count++;
					if(count == rowCount)
					{
						top = top - height - 0.005f;
						left = 0;
						count = 0;
					}
				}
				objRs.MoveNext();
			}
			objRsTarget.AddNew((soGeometry)objGeoText);
			objRsTarget.Update();
			superMap.CtlRefresh();
		
			objText = null;
			objGeoText = null;
			objGeoRect = null;
			objGeoRegion = null;
		}
		#endregion
	
		#region 光滑全剖地质线
		private void SmoothA()
		{
			soDatasetVector objDV = (soDatasetVector)superWorkspace.Datasources[caption].Datasets["剖面线"];			
			soRecordset objRs = objDV.Query("",true,null,"");
			objRs.MoveFirst();
			for(int i=0;i<objRs.RecordCount;i++)
			{				
				if(objRs.GetGeometry().Type == seGeometryType.scgLine)
				{
					soGeoLine objGeoLine,objGeoLineT = new soGeoLine();			
					objGeoLine = (soGeoLine)objRs.GetGeometry();
					SmoothLine sl = new SmoothLine();
					objGeoLineT = sl.Smooth(objGeoLine);
					objRs.Edit();
					objRs.SetGeometry((soGeometry)objGeoLineT);
					objRs.Update();
					objGeoLineT = null;
				}
				objRs.MoveNext();
			}				
			superMap.CtlRefresh();
		}

		private void SmoothC()
		{
			if(superMap.selection.Count < 1) return;
			soRecordset objRs = superMap.selection.ToRecordset(true);
			objRs.MoveFirst();
			for(int i=0;i<objRs.RecordCount;i++)
			{				
				if(objRs.GetGeometry().Type == seGeometryType.scgLine)
				{
					soGeoLine objGeoLine,objGeoLineT = new soGeoLine();			
					objGeoLine = (soGeoLine)objRs.GetGeometry();
					SmoothLine sl = new SmoothLine();
					objGeoLineT = sl.Smooth(objGeoLine);
					objRs.Edit();
					objRs.SetGeometry((soGeometry)objGeoLineT);
					objRs.Update();
					objGeoLineT = null;
				}
				objRs.MoveNext();
			}				
			superMap.CtlRefresh();
		}
		#endregion

		#region barManager事件	
		private void barManager_ItemClick(object sender, System.EventArgs e)
		{
		}

//		private void barManager_MouseEnter(object sender, System.EventArgs e)
//		{
//			BaseItem item=sender as BaseItem;
//			if(item==null)	return;
//			barManager.Bars["barStatus"].Items["lStatus"].Text = item.Tooltip;			
//		}
//
//		private void barManager_MouseLeave(object sender, System.EventArgs e)
//		{
//			barManager.Bars["barStatus"].Items["lStatus"].Text = "水文地质剖面生成模块";		
//		}
		
		private void EnableLineEdit(bool enable)
		{	
			 bDel.Enabled = enable;
			 bLineJoin.Enabled = enable;
			 bCurver.Enabled = enable;
			 bPolyLine.Enabled = enable;
			 bEditV.Enabled = enable;
			 bAddV.Enabled = enable;	
			
			if(enable)
			{
				superMap.Layers.SetEditableLayer("剖面线@"+caption);
			}
			else
			{
				superMap.Layers.DisableEdit();
				superMap.Action = seAction.scaSelect;
			}			
		}

		private void RegonUnion()
		{
			if(superMap.selection.Count != 2)
			{
				MessageBox.Show("请先选择要合并的两个面对象!");
				return;
			}
			soRecordset objRs = superMap.selection.ToRecordset(false);
			objRs.MoveFirst();
			soGeometry objGeometry1 = objRs.GetGeometry();
			objRs.MoveNext();
			soGeometry objGeometry2 = objRs.GetGeometry();
			if(objGeometry1.Type != seGeometryType.scgRegion || objGeometry2.Type != seGeometryType.scgRegion)
			{
				MessageBox.Show("请选择两个面对象!");
				return;
			}
			
			soGeoRegion objGeoRegion1 = new soGeoRegion();
			soGeoRegion objGeoRegion2 = new soGeoRegion();
			soGeoRegion objGeoRegion3 = new soGeoRegion();
			objGeoRegion1 = (soGeoRegion)objGeometry1;
			objGeoRegion2 = (soGeoRegion)objGeometry2;
			objGeoRegion3 = objGeoRegion1.Union(objGeoRegion2);
			objRs.DeleteAll();
			objRs.AddNew((soGeometry)objGeoRegion3);
			objRs.Update();
			superMap.CtlRefresh();
			objGeoRegion1 = null;
			objGeoRegion2 = null;
			objGeoRegion3 = null;
		}

		private void PropertyShow()
		{	
			if(bProperty.Enabled)
			{
//				barManager.Bars["dockProperty"].Visible = false;
				return;
			}
//			barManager.Bars["dockProperty"].Visible = true;
			this.listView.Items.Clear();
			if(superMap.selection.Count == 1)
			{
				soRecordset objRs = superMap.selection.ToRecordset(false);
				for(int i=1;i<=objRs.FieldCount;i++)
				{				
					listView.Items.Add(objRs.GetFieldInfo(i).Name);
					listView.Items[i-1].SubItems.Add(objRs.GetFieldValue(i).ToString());
				}
				objRs = null;
			}			
			listView.Refresh();	
		}

		private void NewProfile()
		{
			superMap.Layers.RemoveAll();
			this.superWorkspace.Datasources.Remove(caption);
			this.DrawProfile();
			superMap.Action = seAction.scaSelect;
			superMap.ViewEntire();
		}
		#endregion

		#region SuperMap事件
		private void superMap_MouseUpEvent(object sender, AxSuperMapLib._DSuperMapEvents_MouseUpEvent e)
		{
			if(e.button == 0 || superMap.selection.Count == 1)
			{
				if(bProperty.Enabled)
				{
					this.PropertyShow();
				}				
			}
		}

		private void superMap_DblClick(object sender, System.EventArgs e)
		{
			if(superMap.selection.Count != 1)	return;
			soRecordset objRs = superMap.selection.ToRecordset(false);
			soGeometry objGeometry = objRs.GetGeometry();
			if(objGeometry.Type == seGeometryType.scgRegion)
			{
				soStyle objStyle = new soStyle();
				objRs.Edit();
				objStyle = objGeometry.Style;
				objFill.ShowPicker(objStyle);				
				objGeometry.Style = objStyle;
				objRs.SetFieldValue("岩性",objFill.get_StyleItemName(objFill.FindID(objGeometry.Style.BrushStyle)));
				objRs.SetGeometry(objGeometry);
				objRs.Update();
				objStyle = null;
				superMap.CtlRefresh();
			}
			else
			{
				bProperty.Enabled= true;
				this.PropertyShow();
			}
			objRs = null;
		}

		private void EditRegionProperty()
		{
			soRecordset objRs = superMap.selection.ToRecordset(false);
			soGeometry objGeometry = objRs.GetGeometry();
			if(objGeometry.Type == seGeometryType.scgRegion)
			{
				soStyle objStyle = new soStyle();
				objRs.Edit();
				objStyle = objGeometry.Style;
				objFill.ShowPicker(objStyle);				
				objGeometry.Style = objStyle;
				objRs.SetFieldValue("岩性",objFill.get_StyleItemName(objFill.FindID(objGeometry.Style.BrushStyle)));
				objRs.SetGeometry(objGeometry);
				objRs.Update();
				objStyle = null;
				superMap.CtlRefresh();
			}				
			objRs = null;			
		}	
		#endregion			

		private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			
			switch(e.Button.Text)
			{
				case "bNew":
					this.NewProfile();
					break;
				case "bSave":
					superWorkspace.Datasources[caption].Commit();
					break;
				case "bClose":
					superWorkspace.Datasources[caption].Commit();
					this.Close();					
					break;
				case "bProperty":
					e.Button.Pushed = !e.Button.Pushed;
					this.PropertyShow();
					break;
				case "bSelect":
					superMap.Action = seAction.scaSelect;
					break;
				case "bZoomIn":
					superMap.Action = seAction.scaZoomIn;
					break;
				case "bZoomOut":
					superMap.Action = seAction.scaZoomOut;
					break;				
				case "bFree":
					superMap.Action = seAction.scaZoomFree;
					break;
				case "bPan":
					superMap.Action = seAction.scaPan;
					break;
				case "bAll":
					superMap.ViewEntire();
					break;
				case "bScale":


					break;
				case "bPre":


					break;
				case "bNext":


					break;
				case "bUndo":


					break;
				case "bRedo":


					break;
				case "bSmoothC":
					this.SmoothC();
					break;
				case "bSmoothA":
					this.SmoothA();
					break;
				case "bTopo":
					this.Topo();					
					break;			
				case "bRegionJoin":
					RegonUnion();			
					break;
				case "bLegend":
					this.DrawLegend(0.025f,0.015f,5);
					break;
				case "bEditLine":	//使线层可编辑
					bProperty.Enabled = true;
//					e.Button.Enabled= !e.Button.Enabled;
					this.EnableLineEdit(e.Button.Enabled);					
					break;				
				case "bDel":
					superMap.DeleteSelection();
					break;
				case "bLineJoin":


					break;				
				case "bCurver":
					superMap.Action = seAction.scaEditCreateCurve;
					break;					
				case "bPolyLine":
					superMap.Action = seAction.scaEditCreatePolyline;
					break;
				case "bEditV":
					superMap.Action = seAction.scaEditVertexEdit;
					break;
				case "bAddV":
					superMap.Action = seAction.scaEditVertexAdd;
					break;				
				case "bOption":	
				
					break;
				case "bHelp":

					break;				
					//				default:
					//					MessageBox.Show(objItem.Name);
					//					break;
			}
		
		}

		private void toolBar1_MouseEnter(object sender, System.EventArgs e)
		{
//			BaseItem item=sender as BaseItem;
//			if(item==null)	return;
//			this.statusBarPanel1.Text=

		}

		private void superMap_GeometrySelected(object sender, AxSuperMapLib._DSuperMapEvents_GeometrySelectedEvent e)
		{
		
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -