📄 profile.cs
字号:
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 + -