?? form1.cs
字號:
//Set the Buddy
axToolbarControl1.SetBuddyControl(m_map);
this.toc.SetBuddyControl(m_map);
//Create UID's and add new items to the ToolBarControl
UID uID = new UIDClass();
uID.Value = "esriControlCommands.ControlsOpenDocCommand";
axToolbarControl1.AddItem(uID, -1, -1, false, -1, esriCommandStyles.esriCommandStyleIconOnly);
uID.Value = "esriControlCommands.ControlsMapZoomInTool";
axToolbarControl1.AddItem(uID, -1, -1, true, -1, esriCommandStyles.esriCommandStyleIconAndText);
uID.Value = "esriControlCommands.ControlsMapZoomOutTool";
axToolbarControl1.AddItem(uID, -1, -1, false, -1, esriCommandStyles.esriCommandStyleIconAndText);
uID.Value = "esriControlCommands.ControlsMapPanTool";
axToolbarControl1.AddItem(uID, -1, -1, false, -1, esriCommandStyles.esriCommandStyleIconAndText);
uID.Value = "esriControlCommands.ControlsMapFullExtentCommand";
axToolbarControl1.AddItem(uID, -1, -1, false, -1, esriCommandStyles.esriCommandStyleIconAndText);
uID.Value = "esriControlCommands.ControlsSelectFeaturesTool";
axToolbarControl1.AddItem(uID, -1, -1, true, 20, esriCommandStyles.esriCommandStyleTextOnly);
uID.Value = "esriControlCommands.ControlsClearSelectionCommand";
axToolbarControl1.AddItem(uID, -1, -1, false, -1, esriCommandStyles.esriCommandStyleTextOnly);
InitMapData();
}
#region 地圖數據初始化
private void InitMapData()
{
IPropertySet pConn;
try
{
IFeatureWorkspace pFeatureWorkspace;
IFeatureLayer pFeatureLayer;
pConn = new PropertySetClass();
pConn.SetProperty("DATABASE",@"D:\LG" );
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace pWorkspace=pWorkspaceFactory.Open(pConn,0);
pFeatureWorkspace = (IFeatureWorkspace) pWorkspaceFactory.Open(pConn,0);
IEnumDatasetName pEnumDSName = pWorkspace.get_DatasetNames(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass);
pEnumDSName.Reset();
IDatasetName pSdeDSName = pEnumDSName.Next();
int i = 0;
while (pSdeDSName != null)
{
pFeatureLayer=new FeatureLayerClass();
pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(pSdeDSName.Name);
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
pSdeDSName = pEnumDSName.Next();
m_map.AddLayer(pFeatureLayer,i);
map_eye.AddLayer(pFeatureLayer,i);
IGeoFeatureLayer pGeoFeatureLayer =(IGeoFeatureLayer)pFeatureLayer;
IRgbColor pColor=new RgbColorClass();//顏色接口
pGeoFeatureLayer.AnnotationProperties.Clear();
IAnnotateLayerPropertiesCollection pAnnoLayerPropsColl = new AnnotateLayerPropertiesCollectionClass();
pAnnoLayerPropsColl = pGeoFeatureLayer.AnnotationProperties;
ILabelEngineLayerProperties pLabelEngine = new LabelEngineLayerPropertiesClass() ;
pLabelEngine.Expression = "[名稱]" ;
ITextSymbol pText = new TextSymbolClass();
stdole.StdFont pFont = new stdole.StdFontClass();
pFont.Name = "宋體";
pFont.Bold = true;
pText.Font = (stdole.IFontDisp) pFont;
pLabelEngine.Symbol = pText;
pLabelEngine.Symbol.Size = 10;
IAnnotateLayerProperties pAnnoLayerProps = (IAnnotateLayerProperties) pLabelEngine ;
pAnnoLayerPropsColl.Add(pAnnoLayerProps);
pGeoFeatureLayer.DisplayAnnotation = true;
i++;
}
m_map.ActiveView.Extent = m_map.ActiveView.Extent;
map_eye.ActiveView.Extent = map_eye.ActiveView.Extent;
m_map.ActiveView.Refresh();
toc.SetBuddyControl(m_map);
}
catch( System.Exception err)
{
MessageBox.Show(this,err.Message.ToString() );
}
}
#endregion
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//Release COM objects and shutdown
ESRI.ArcGIS.Utility.COMSupport.AOUninitialize.Shutdown();
m_AoInitialize.Shutdown();
}
private void m_map_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
{
esriUnits mapUnits = m_map.MapUnits;
switch (mapUnits)
{
case esriUnits.esriCentimeters:
sMapUnits = "Centimeters";
break;
case esriUnits.esriDecimalDegrees:
sMapUnits = "Decimal Degrees";
break;
case esriUnits.esriDecimeters:
sMapUnits = "Decimeters";
break;
case esriUnits.esriFeet:
sMapUnits = "Feet";
break;
case esriUnits.esriInches:
sMapUnits = "Inches";
break;
case esriUnits.esriKilometers:
sMapUnits = "Kilometers";
break;
case esriUnits.esriMeters:
sMapUnits = "Meters";
break;
case esriUnits.esriMiles:
sMapUnits = "Miles";
break;
case esriUnits.esriMillimeters:
sMapUnits = "Millimeters";
break;
case esriUnits.esriNauticalMiles:
sMapUnits = "NauticalMiles";
break;
case esriUnits.esriPoints:
sMapUnits = "Points";
break;
case esriUnits.esriUnknownUnits:
sMapUnits = "Unknown";
break;
case esriUnits.esriYards:
sMapUnits = "Yards";
break;
}
}
private void axToolbarControl1_OnMouseMove(object sender, IToolbarControlEvents_OnMouseMoveEvent e)
{
//Determine if the mouse is over an item
int index = axToolbarControl1.HitTest(e.x, e.y, false);
if (index != -1)
{
//Get a reference to the ToolbarItem interface
IToolbarItem toolbarItem = axToolbarControl1.GetItem(index);
//Set statusbar text
statusBar1.Panels[0].Text = toolbarItem.Command.Message;
}
else
{
statusBar1.Panels[0].Text = "";
}
}
private void m_map_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
statusBar1.Panels[1].Text = e.mapX.ToString(".00") + " " + e.mapY.ToString(".00")+ " " + sMapUnits;
}
private void m_map_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)
{
// 得到新范圍
IEnvelope pEnv = new EnvelopeClass();
pEnv = (IEnvelope)e.newEnvelope;
IGraphicsContainer pGra = map_eye.Map as IGraphicsContainer;
IActiveView pAv = pGra as IActiveView;
map_eye.Extent = pEnv;
//在繪制前,清除map_eye中的任何圖形元素
pGra.DeleteAllElements();
IRectangleElement pRectangleEle = new RectangleElementClass();
IElement pEle = pRectangleEle as IElement;
pEle.Geometry = pEnv;
//設置鷹眼圖中的紅線框
IRgbColor pColor = new RgbColorClass();
pColor.Red = 255;
pColor.Green = 0;
pColor.Blue = 0;
pColor.Transparency = 255;
//產生一個線符號對象
ILineSymbol pOutline = new SimpleLineSymbolClass();
pOutline.Width = 1.0;
pOutline.Color = pColor;
//設置顏色屬性
pColor = new RgbColorClass();
pColor.Red = 255;
pColor.Green = 0;
pColor.Blue = 0;
pColor.Transparency = 0;
//設置填充符號的屬性
IFillSymbol pFillSymbol = new SimpleFillSymbolClass();
pFillSymbol.Color = pColor;
pFillSymbol.Outline = pOutline;
IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;
pFillShapeEle.Symbol = pFillSymbol;
pGra.AddElement((IElement)pFillShapeEle, 0);
pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
/**//// <summary>
/// 控制鷹眼地圖
/// </summary>
/// <param name="layer"></param>
private void map_eye_OnMouseDown(object sender,IMapControlEvents2_OnMouseDownEvent e)
{
IPoint pPt=new PointClass ();
pPt.PutCoords (e.mapX ,e.mapY );
m_map.CenterAt (pPt );
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -