- 浏览: 138312 次
- 性别:
- 来自: 西安
最新评论
-
zhlfresh163.com:
,请速回,我也正在玩百度地图,就这里自定义图层出现问题,需要 ...
MapXtreme加载瓦片地图 -
zhlfresh163.com:
var path = "TileServer/&qu ...
MapXtreme加载瓦片地图
ArcGIS Engine常用开发代码整理
ArcGIS Engine常用开发代码整理(1)
1. 创建工作空间工厂——EDN
public void IWorkspaceFactory_Create_Example_Access() {
// create a new Access workspace factory
IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass();
// Create a workspacename with the workspace factory
IWorkspaceName workspaceName = workspaceFactory.Create("C:\\temp\\", "MyNewpGDB.mdb", null, 0);
// Cast for IName
ESRI.ArcGIS.esriSystem.IName name = (ESRI.ArcGIS.esriSystem.IName)workspaceName;
//Open a reference to the access workspace through the name object
IWorkspace pGDB_workspace = (IWorkspace)name.Open();
Console.WriteLine("Current path of the {0} is {1}", pGDB_workspace.Type, pGDB_workspace.PathName);
}
2. 遍历所有图层
注意帮助文档中“Loop Through Layers of Specific UID Snippet”主题中详细列出了不同的UIDClass过滤选项,替换get_layers()中的null:
1 /// The different layer GUID's and Interface's are:
2 /// "{AD88322D-533D-4E36-A5C9-1B109AF7A346}" = IACFeatureLayer
3 /// "{74E45211-DFE6-11D3-9FF7-00C04F6BC6A5}" = IACLayer
4 /// "{495C0E2C-D51D-4ED4-9FC1-FA04AB93568D}" = IACImageLayer
5 /// "{65BD02AC-1CAD-462A-A524-3F17E9D85432}" = IACAcetateLayer
6 /// "{4AEDC069-B599-424B-A374-49602ABAD308}" = IAnnotationLayer
7 /// "{DBCA59AC-6771-4408-8F48-C7D53389440C}" = IAnnotationSublayer
8 /// "{E299ADBC-A5C3-11D2-9B10-00C04FA33299}" = ICadLayer
9 /// "{7F1AB670-5CA9-44D1-B42D-12AA868FC757}" = ICadastralFabricLayer
10 /// "{BA119BC4-939A-11D2-A2F4-080009B6F22B}" = ICompositeLayer
11 /// "{9646BB82-9512-11D2-A2F6-080009B6F22B}" = ICompositeGraphicsLayer
12 /// "{0C22A4C7-DAFD-11D2-9F46-00C04F6BC78E}" = ICoverageAnnotationLayer
13 /// "{6CA416B1-E160-11D2-9F4E-00C04F6BC78E}" = IDataLayer
14 /// "{0737082E-958E-11D4-80ED-00C04F601565}" = IDimensionLayer
15 /// "{48E56B3F-EC3A-11D2-9F5C-00C04F6BC6A5}" = IFDOGraphicsLayer
16 /// "{40A9E885-5533-11D0-98BE-00805F7CED21}" = IFeatureLayer
17 /// "{605BC37A-15E9-40A0-90FB-DE4CC376838C}" = IGdbRasterCatalogLayer
18 /// "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}" = IGeoFeatureLayer
19 /// "{34B2EF81-F4AC-11D1-A245-080009B6F22B}" = IGraphicsLayer
20 /// "{EDAD6644-1810-11D1-86AE-0000F8751720}" = IGroupLayer
21 /// "{D090AA89-C2F1-11D3-9FEF-00C04F6BC6A5}" = IIMSSubLayer
22 /// "{DC8505FF-D521-11D3-9FF4-00C04F6BC6A5}" = IIMAMapLayer
23 /// "{34C20002-4D3C-11D0-92D8-00805F7C28B0}" = ILayer
24 /// "{E9B56157-7EB7-4DB3-9958-AFBF3B5E1470}" = IMapServerLayer
25 /// "{B059B902-5C7A-4287-982E-EF0BC77C6AAB}" = IMapServerSublayer
26 /// "{82870538-E09E-42C0-9228-CBCB244B91BA}" = INetworkLayer
27 /// "{D02371C7-35F7-11D2-B1F2-00C04F8EDEFF}" = IRasterLayer
28 /// "{AF9930F0-F61E-11D3-8D6C-00C04F5B87B2}" = IRasterCatalogLayer
29 /// "{FCEFF094-8E6A-4972-9BB4-429C71B07289}" = ITemporaryLayer
30 /// "{5A0F220D-614F-4C72-AFF2-7EA0BE2C8513}" = ITerrainLayer
31 /// "{FE308F36-BDCA-11D1-A523-0000F8774F0F}" = ITinLayer
32 /// "{FB6337E3-610A-4BC2-9142-760D954C22EB}" = ITopologyLayer
33 /// "{005F592A-327B-44A4-AEEB-409D2F866F47}" = IWMSLayer
34 /// "{D43D9A73-FF6C-4A19-B36A-D7ECBE61962A}" = IWMSGroupLayer
35 /// "{8C19B114-1168-41A3-9E14-FC30CA5A4E9D}" = IWMSMapLayer
示例:
3. 判断图层类型
http://bbs.esrichina-bj.cn/ESRI/thread-59674-1-1.html
4. 【转】根据图层名称找到当前的图层的两种方法
http://www.gisempire.com/blog/user1/1/58.html
'功能:根据图层名称找到当前的图层
'返回:当前图层对象
Private Function GetCurLayer() As ILayer
Dim i As Integer
Set GetCurLayer = Nothing
For i = 0 To ff_m_Map.LayerCount - 1
If UCase$(ff_m_Map.Layer(i).Name) = UCase$(ff_m_strCurLayername) Then
Set GetCurLayer = ff_m_Map.Layer(i)
Exit For
End If
Next i
End Function
'功能:找到当前的图层
'返回:当前图层对象
'修改时间:
Private Function GetCurLayer() As ILayer
Set ff_m_ActiveView = ff_m_Map
Dim pEnumLayer As IEnumLayer
Dim pId As IFeatureLayer
Dim pLayer As ILayer
Set ff_m_Map = ff_m_ActiveView.FocusMap
Set pEnumLayer = ff_m_Map.Layers(pId, True)
Set GetCurLayer = Nothing
pEnumLayer.Reset
Set pLayer = pEnumLayer.Next
Do While Not pLayer Is Nothing
If UCase$(pLayer.Name) = UCase$(ff_m_strCurLayername) Then
Set GetCurLayer = pLayer
End If
Set pLayer = pEnumLayer.Next
Loop
End Function
5. 打开TIN数据集
public ILayer openTinLayer(string fullPath)
{
ITinWorkspace pTinWorkspace;
IWorkspace pWS;
IWorkspaceFactory pWSFact = new TinWorkspaceFactoryClass();
// ITinLayer pTinLayer = new TinLayerClass();
string pathToWorkspace = System.IO.Path.GetDirectoryName(fullPath);
string tinName = System.IO.Path.GetFileName(fullPath);
pWS = pWSFact.OpenFromFile(pathToWorkspace, 0);
pTinWorkspace = pWS as ITinWorkspace;
if (pTinWorkspace.get_IsTin(tinName))
{
pTin = pTinWorkspace.OpenTin(tinName);
pTinLayer.Dataset = pTin;
pTinLayer.ClearRenderers();
return pTinLayer as ILayer;
}
else
{
MessageBox.Show("该目录不包含Tin文件");
return null;
}
}
6. 读取选中的IElement对象
http://bbs.esrichina-bj.cn/ESRI/thread-101968-1-1.html
7. 通过点的集合IPointCollection构建线IPolyline或面要素IPolygon
IPolyline m_ProfilePolyline =new PolylineClass();
IPointCollection m_PtCol = m_ProfilePolyline as IPointCollection;
IPoint pPoint1 = new PointClass();
pPoint1.X = x ;
pPoint1.Y = y;
m_PtCol.AddPoint(pPoint1, ref missing, ref missing);
IPoint pPoint2 = new PointClass();
pPoint2.X = x ;
pPoint2.Y = y;
m_PtCol.AddPoint(pPoint2, ref missing, ref missing);
8. 【转】平头缓冲
http://www.cnblogs.com/zuiyirenjian/archive/2011/01/13/1934267.html(AE中应该提供了其他的接口,这里主要学习点的操作)思路就是将线向左右两边移动相同的距离,然后将一条线的方向反向,加入另外一条,构造矩形或者矩形面
private IPolygon FlatBuffer(IPolyline myLine, double bufferDis)
{
object o = System.Type.Missing;
//分别对输入的线平移两次(正方向和负方向)
IConstructCurve mycurve = new PolylineClass();
mycurve.ConstructOffset(myLine, bufferDis, ref o, ref o);
IPointCollection pCol = mycurve as IPointCollection;
IConstructCurve mycurve2 = new PolylineClass();
mycurve2.ConstructOffset(myLine, -1 * bufferDis, ref o, ref o);
//把第二次平移的线的所有节点翻转
IPolyline addline = mycurve2 as IPolyline;
addline.ReverseOrientation();
//把第二条的所有节点放到第一条线的IPointCollection里面
IPointCollection pCol2 = addline as IPointCollection;
pCol.AddPointCollection(pCol2);
//用面去初始化一个IPointCollection
IPointCollection myPCol = new PolygonClass();
myPCol.AddPointCollection(pCol);
//把IPointCollection转换为面
IPolygon myPolygon = myPCol as IPolygon;
//简化节点次序
myPolygon.SimplifyPreserveFromTo();
return myPolygon;
}
9. 遍历要素类中的所有字段
10. 获取图层的3DProperties
/// <summary>
/// 获取图层三维属性
/// </summary>
/// <param name="pTinLayer">pFeatLayer图层</param>
/// <returns></returns>
public I3DProperties get3DProps(IFeatureLayer pFeatLayer)
{
I3DProperties p3DProps = null;
ILayer pLayer = pFeatLayer as ILayer;
ILayerExtensions lyrExt = pLayer as ILayerExtensions;
for (int i = 0; i < lyrExt.ExtensionCount; i++)
{
if (lyrExt.get_Extension(i) is I3DProperties)
{
p3DProps = lyrExt.get_Extension(i) as I3DProperties;
}
}
return p3DProps;
}
pSceneControl.Scene.AddLayer(pLyr,false);
//必须先添加图层到Scene中
I3DProperties p3DProps = get3DProps(pFeatLyr);
p3DProps.ExtrusionType = esriExtrusionType.esriExtrusionAbsolute;
p3DProps.ExtrusionExpressionString = "["+combHeight.Text+"]";
p3DProps.Apply3DProperties(pFeatLyr);
ArcEngine代码整理(2)
1. 获取Map中选择的元素(Element)
IGraphicsContainer m_GraphicsContainer =axMapControl1.Map as IGraphicsContainer;
m_GraphicsContainer.Reset();
IGraphicsContainerSelect pGraphicSelect = m_GraphicsContainer as IGraphicsContainerSelect;
//pGraphicSelect.SelectedElements.Reset();
int a = pGraphicSelect.ElementSelectionCount;
IEnumElement m_EnumEle=pGraphicSelect.SelectedElements;
m_EnumEle.Reset();
IElement m_Element = m_EnumEle.Next();
IElementProperties m_ElementProperties = m_Element as IElementProperties;
while (m_Element != null)
{
comboBox1.SelectedItem = m_ElementProperties.Name;
propertyGrid1.SelectedObject = (Stra)m_ElementProperties.CustomProperty;
m_Element = m_EnumEle.Next();
m_ElementProperties = m_Element as IElementProperties;
}
2. 获取MapControl中选择的要素(Feature)
IMap m_Map = pMapCtrl.Map; ESRI.ArcGIS.esriSystem.IUID uid = new ESRI.ArcGIS.esriSystem.UIDClass(); uid.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; ESRI.ArcGIS.Carto.IEnumLayer enumLayer = m_Map.get_Layers(((ESRI.ArcGIS.esriSystem.UID)(uid)), true); enumLayer.Reset(); ESRI.ArcGIS.Carto.ILayer layer = enumLayer.Next(); int j = -1; IFeatureLayer pCurrentLyr = null; while (!(layer == null)) { j++; if (layer.Name == "Holes") { pCurrentLyr = layer as IFeatureLayer; break; } layer = enumLayer.Next(); } IQueryFilter queryFilter = new QueryFilterClass(); IFeatureSelection pFeatSelection = pCurrentLyr as IFeatureSelection; ISelectionSet selectionSet = pFeatSelection.SelectionSet; ICursor cursor = null; selectionSet.Search(queryFilter, true, out cursor); IFeatureCursor featureCursor = cursor as IFeatureCursor; IFeature feature; int i = 0; string holeid=""; while ((feature = featureCursor.NextFeature()) != null) { if (i==0) { holeid= feature.get_Value(2).ToString(); break; } }
3. 打开AccessWorkspaceFactory中的栅格数据集
1 string strFeatName = pFeatDlg.FileName;//自己定义的对话框
2 IWorkspaceFactory m_WorkspaceFactory = new AccessWorkspaceFactory();
3 IWorkspace m_Workspce = m_WorkspaceFactory.OpenFromFile(MineFrm.m_WorkspacePath, 0);
4 IRasterWorkspaceEx m_RasterWorkspace = m_Workspce as IRasterWorkspaceEx;//Access工作空间需要用这个接口跳转
5 IRasterDataset pRasterDataset = null;
6 pRasterDataset = m_RasterWorkspace.OpenRasterDataset(strFeatName);
7 IRasterLayer pRasterLayer = new RasterLayerClass();
8 pRasterLayer.CreateFromDataset(pRasterDataset);
9 ILayer player = pRasterLayer as ILayer;
10 player.Name = pRasterLayer.Name;
11 map = axMapControl1.Map;
12 map.AddLayer(player);
4. 获取栅格类型的Surface
首先定义一个UIDClass:
ESRI.ArcGIS.esriSystem.IUID uid2 = new ESRI.ArcGIS.esriSystem.UIDClass();
uid2.Value = "{D02371C7-35F7-11D2-B1F2-00C04F8EDEFF}" ;//= IRasterLayer
1 IRasterLayer m_RasterLayer=null;
2 ESRI.ArcGIS.Carto.IEnumLayer enumLayer = m_Map.get_Layers(((ESRI.ArcGIS.esriSystem.UID)(uid2)), true); // Explicit Cast
3 enumLayer.Reset();
4 ESRI.ArcGIS.Carto.ILayer layer = enumLayer.Next();
5 int i = -1;
6
7 while (!(layer == null))
8 {
9 i++;
10 if (i == listSruface.SelectedIndex)//这里是为了获取ListBox中选择项对应的图层,不在通过图层名称获取图层,通过遍历添加,再遍历选择
11 {
12 m_RasterLayer = layer as IRasterLayer;
13 }
14
15 layer = enumLayer.Next();
16 }
17 IRasterSurface m_RasterSurface = new RasterSurfaceClass();
18 MessageBox.Show(m_RasterLayer.BandCount.ToString());
19 //m_RasterSurface.PutRaster(m_RasterLayer.Raster, 0);
20 IRasterBandCollection pBands;
21 pBands = m_RasterLayer.Raster as IRasterBandCollection;
22 m_RasterSurface.RasterBand = pBands.Item(0);
23
24 ISurface m_Surface = m_RasterSurface as ISurface;
25 IGeometry pGeoPolyline;
26 m_Surface.InterpolateShape(m_CutLine as IGeometry, out pGeoPolyline, ref mis);
27 IPolyline pPolyline = pGeoPolyline as IPolyline;
28 IGraphicsContainer pGraphicContainer = m_PreViewMapCtrl.ActiveView as IGraphicsContainer;
29 ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
30 pSimpleLineSymbol.Width = 1;
31 pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid;
32 IColor pColor = ColorAndIcolor.ConvertColorToIColor(Color.Red);
33 pSimpleLineSymbol.Color = pColor;
34 IElement pEleAxisX = null;//X轴线
35 ILineElement pLineEleX = new LineElementClass();
36 pLineEleX.Symbol = pSimpleLineSymbol;
37 pEleAxisX = pLineEleX as IElement;
38 pEleAxisX.Geometry = pPolyline;
39 pGraphicContainer.AddElement(pEleAxisX, 0);
40 m_PreViewMapCtrl.Extent = pGeoPolyline.Envelope;
41 m_PreViewMapCtrl.ActiveView.Refresh();
5.从FeatureClass中读取要素IFeature
IList<IPolyline> m_Polylines = new List<IPolyline>();//存放线要素 IQueryFilter pQueryFilter = new QueryFilterClass(); //pQueryFilter.SubFields = "LineId,Shape,StartPointId,EndPointId"; //过滤字段 // .WhereClause = "SUBTYPE = 'INDSTL'" IFeatureCursor pCur = m_FeatSelect.Search(null, false);//查找字段 int iLineTypeIndex = m_FeatSelect.FindField("Type"); IFeature pFeat = pCur.NextFeature(); int show = 0; while (pFeat != null) { show++; if (double.Parse(pFeat.get_Value(iLineTypeIndex).ToString())>0) { IPolyline pPoline = pFeat.Shape as IPolyline; m_Polylines.Add(pPoline); } pFeat = pCur.NextFeature(); }
6.读取ITable中的IRow
1 IQueryFilter pQueryFilter = new QueryFilterClass(); 2 pQueryFilter.WhereClause = sFinallySql; 3 //int i = m_Table.RowCount(pQueryFilter); 4 //MessageBox.Show(i.ToString()); 5 pList = new List<Rooms>(); 6 ICursor pcur = m_Table.Search(pQueryFilter, true); 7 IRow pRow = pcur.NextRow(); 8 9 while (pRow != null) 10 { 11 int k = pRow.Fields.FieldCount; 12 Rooms m_Room = new Rooms(); 13 m_Room.RoomId = pRow.get_Value(roomidIndex).ToString(); 14 m_Room.RoomName = pRow.get_Value(roomNameIndex).ToString(); 15 m_Room.RoonEnglish = pRow.get_Value(engIndex).ToString(); 16 m_Room.Deprt = pRow.get_Value(deaprtIndex).ToString(); 17 m_Room.RoomType = pRow.get_Value(typeIndex).ToString(); 18 m_Room.Useage = pRow.get_Value(usageIndex).ToString(); 19 m_Room.LocationSchool = pRow.get_Value(localIndex).ToString(); 20 if (pRow.get_Value(areaIndex).ToString() != null && pRow.get_Value(areaIndex).ToString() != "") 21 { 22 m_Room.Area_1 = double.Parse(pRow.get_Value(areaIndex).ToString()); 23 } 24 25 m_Room.User_1 = pRow.get_Value(userIndex).ToString(); 26 pList.Add(m_Room); 27 pRow = pcur.NextRow(); 28 } 29 dataGridView1.DataSource = pList; 30 for (int i = 0; i < dataGridView1.Columns.Count; i++) 31 dataGridView1.Columns[i].HeaderText = plistheader[i];
原创文章,转载请注明出处!
这里学习了一下IStream和IPersistStream接口。
FileStream、ObjectStream和XmlStream类都继承了IStream接口。IPersist-->IPersistStream和IStream都是COM的接口,微软的接口。
串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程,而反串行化(deserialization)则指串行化过程的逆过程,将字节流转换成一个对象。.Net目前通过Iserializeable接口实现序列化。这也就是我用C#开发的时候想序列化包含COM成员的类是产生的问题。难道必须转换?
情况描述为:1. 自己定义的一个类,类的成员有.net的值类型和对象,还包括COM对象,这时候应该如何保持我的这个类?
2.在保存COM对象的时候,比如下面对Scene的序列化,怎样同时保存同一窗体中其他的成员变量(.net变量或对象)?
1 private void 保存场景ToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 SaveFileDialog pSaveDlg = new SaveFileDialog();
4 pSaveDlg.Filter = "3D场景(*.sce)|*.sce";
5
6 pSaveDlg.Title = "生成3D场景";
7 if (pSaveDlg.ShowDialog() == DialogResult.OK)
8 {
9 string exportname = pSaveDlg.FileName;
10 IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();
11 IObjectStream pObjectStream = new ObjectStreamClass();
12 pObjectStream.Stream = pMemoryBlobStream;
13 IPersistStream pPersistStream = (IPersistStream)m_scene;
14 pPersistStream.Save((IStream)pObjectStream, 0);
15 pMemoryBlobStream.SaveToFile(exportname);
16 MessageBox.Show("场景保存成功!");
17 }
18 }
19
20 private void 打开场景ToolStripMenuItem_Click(object sender, EventArgs e)
21 {
22 OpenFileDialog pDlg = new OpenFileDialog();
23 pDlg.Filter = "3D场景(*.sce)|*.sce";
24 pDlg.Multiselect = false;
25 pDlg.Title = "3D场景";
26 if (pDlg.ShowDialog() == DialogResult.OK)
27 {
28 string fileName = pDlg.FileName;
29 string path = System.IO.Path.GetDirectoryName(fileName);
30 string name = System.IO.Path.GetFileNameWithoutExtension(fileName);
31 IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();
32 pMemoryBlobStream.LoadFromFile(fileName);
33 IObjectStream pObjectStream = new ObjectStreamClass();
34 pObjectStream.Stream = pMemoryBlobStream;
35 IPersistStream pPersistStream = (IPersistStream)m_scene;
36 pPersistStream.Load((IStream)pObjectStream);
37 axSceneControl1.SceneGraph.Scene = m_scene;
38 axSceneControl1.SceneGraph.RefreshViewers();
39 }
40 }
参考文献:
http://www.cnblogs.com/myparamita/archive/2009/01/21/1379325.html
http://blog.csdn.net/puttytree/article/details/5376423
相关推荐
这个“arcgis engine开发代码”压缩包显然是为初学者准备的一个学习资源,包含了一些示例代码和可能的教程资料,帮助开发者快速入门。 首先,ArcGIS Engine提供了丰富的API和类库,让开发者可以使用多种编程语言...
《ArcGIS Engine开发技术——基于C#的GIS应用实践》 ArcGIS Engine是Esri公司提供的一个强大的开发工具集,用于构建地理信息系统(GIS)应用程序。它为开发者提供了丰富的地图和空间数据处理功能,使开发者能够利用...
ArcGIS Engine 是专门用于开发 GIS 系统的开发包,目前最新版本是9.3。基于 ArcGIS Engine,结合程序开发语言可以开发具有很强专业性的GIS系统。而且所开发的系统不需要客户端安装 ArcGIS软件,只需要安装 ArcGIS ...
C#的简洁语法和强大的类库与ArcGIS Engine的API相结合,极大地提高了开发效率和代码可读性。 三、ArcEngine核心概念 1. 地图(Map):地图是ArcGIS Engine的核心,它包含了一系列的地图层,用于显示和操作地理信息...
在这个“ArcGIS Engine开发课程设计源码下载”中,我们很可能会找到一系列的示例代码和项目,帮助学习者深入理解如何使用ArcGIS Engine进行软件开发。 1. **ArcGIS Engine基础** ArcGIS Engine提供了多种组件和...
总的来说,这个初学者实例代码.zip文件提供了一个学习ArcGIS Engine与C#集成的良好起点,通过实际的项目代码,你可以逐步掌握地图应用开发的关键技术。通过实践和调试,你将能够创建功能丰富的GIS应用,满足不同业务...
1. **目标**:本章节旨在引导读者了解如何使用ArcGIS Engine SDK在C#环境下搭建一个基本的GIS应用开发环境,并通过示例代码熟悉ArcGIS Engine的基础操作。 2. **准备工作**: - 安装必要的开发工具,如Visual ...
这个"ArcGIS Engine 10 开发文档的配套代码"包含了与官方开发文档紧密相关的示例代码,帮助开发者深入理解并应用ArcGIS Engine的功能。 1. **ArcGIS Engine概述** ArcGIS Engine提供了丰富的API,支持多种编程语言...
ArcGISEngine开发工具包是基于组件的软件开发产品,适于构建定制化的GIS和制图应用软件。ArcGISEngine Runtime是运行已开发的应用程序所需的核心ArcObjects组件产品。 文档中提到了一些ArcGIS Engine 10开发相关的...
《ArcGIS Engine组件开发实例详解》 ArcGIS Engine是一款由Esri公司提供的强大的地理信息系统(GIS)开发工具,它允许开发者构建桌面、Web以及移动应用,实现地图的创建、编辑、显示以及地理处理功能。本实例主要...
ArcGIS Engine Runtime 是一个使终端用户软件能够运行的核心 ArcObjects 组件产品,并且将被安装在每一台运行 ArcGISEngine 应用程序的计算机上。 ArcGIS Engine 是基于 COM 技术的可嵌入的组件库和工具包,ArcGIS ...
ArcGIS Engine 10 开发环境的一些常见问题 在使用 ArcGIS Engine 10 进行开发时,许多开发者都会遇到一些问题。本文将对一些常见的问题进行总结和解答。 1. 哪儿有 10 的 ArcGIS Engine SDK? 答案:ArcGIS 10 不...
《ArcGIS Engine开发从入门到精通》共4篇分18章,第一篇基础篇(第1~9章)集中介绍了 ArcGIS Engine基础知识,包括开发基础组件对象模型、ArcGIS Engine介绍、基于.NET的ArcGIS Engine的开发,ArcGIS Engine中的...
【ArcGIS Engine + C# 实例开发教程】是面向ArcGIS Engine初学者的一份详细教程,旨在帮助读者掌握使用C#语言和Visual Studio 2005开发GIS桌面应用程序的基本方法。教程的主要目标是使读者深入理解ArcGIS Engine的...
ArcGIS Engine开发:加载MDB中的数据(C#) ArcGIS Engine 是一种广泛应用于 GIS 系统开发的软件开发框架,它提供了强大的空间数据处理和分析能力。在 ArcGIS Engine 开发中,加载空间数据是非常重要的一步,这篇...
在IT行业中,ArcGIS Engine是一种强大的地理信息系统(GIS)开发平台,由Esri公司提供,用于构建具有专业地图和地理处理功能的应用程序。"鹰眼"通常指的是在GIS应用中的一种高级视图或功能,它提供了类似鹰一样俯瞰...
- **开发环境与运行环境版本差异**:开发人员在安装了特定版本ArcGIS Engine的计算机上编写代码,但在其他计算机(通常是用户端)上运行时,这些计算机可能没有安装相同版本的ArcGIS Engine。 - **引用库版本不匹配*...
根据提供的文件信息,本文将详细解析“C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码”的核心知识点。此示例代码展示了如何利用C#结合ArcGIS Engine进行地图元素的查找与高亮显示功能的实现。 ### 一、ArcGIS ...