
ArcEngine基础
xizhjxust_GIS
gis前后端开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ArcGIS Engine基础(31)之使用仿射变换对矢量数据进行空间校正
在生产数据过程中,因每个工程项目都可能有自己的施工坐标系,难免会产生数据提供方与数据使用方采用的坐标系不一致,造成数据在不同坐标系下存在一定偏移、旋转、缩放等,为了让数据能够在新坐标系准确定位,需要进行空间校正,空间校正是针对矢量图的,栅格配准是针对栅格影像的,arcgis中提供的空间校正的方法有:仿射变换、投影变换、相似变换、橡皮页变换等。其中等角变换要求至少两个已知点,因为他的变换函数使用4参数;而真彷射变换要求至少三个已知点,因为他的变换函数使用6参数。原创 2023-01-10 19:55:34 · 1807 阅读 · 0 评论 -
ArcGIS Engine基础(30)之通过地图文档MapDocment按范围截取多图层叠加后的图片
不借助MapControl控件,直接通过地图文档MapDocment截图原创 2022-12-04 17:49:01 · 567 阅读 · 0 评论 -
ArcGIS Engine基础(29)之加载arcgis server切片地图服务
使用arcgis engine加载arcgis server切片地图服务的三种方式。原创 2022-11-26 21:06:32 · 1749 阅读 · 3 评论 -
ArcGIS Engine基础(28)之获取图层中在拓扑关系上自重合要素的两种方法
第一种方法:建立拓扑关系进行拓扑分析实现(1)创建临时文件地理数据库(2)在文件地理数据库工作空间中创建要素数据级(3)原创 2021-06-09 20:08:55 · 963 阅读 · 0 评论 -
ArcGIS Engine基础(27)之IGeoDatabaseBridge.GetFeatures实现通过FID要素编号数组快速获取要素
根据FID要素编号获取要素的第一个想到的可能是通过IFeature feature=featureClass.GetFeature(oid)对于多个编号原创 2021-06-09 17:30:34 · 575 阅读 · 0 评论 -
ArcGIS Engine基础(26)之IFeatureIndex2和IIndexQuery2实现查找某个点位置或者范围最近的要素
查找最近点位置,可以使用IProximityOperator IProximityOperator pProximity = (IProximityOperator)pGeometry; IPoint pNearestPoint = pProximity.ReturnNearestPoint(pInputPoint, esriSegmentExtension.esriNoExtension);原创 2021-06-09 15:55:13 · 1059 阅读 · 2 评论 -
ArcGIS Engine基础(25)之布局视图工具类(地图打印功能)
打印工具OnClick事件public override void OnClick() { AxPageLayoutControl pageLayoutControl = AxPageLayoutControl.FromChildHandle((IntPtr)m_HookHelper.ActiveView.ScreenDisplay.hWnd) as AxPageLayoutControl; if(p原创 2021-04-22 15:46:03 · 994 阅读 · 0 评论 -
ArcGIS Engine基础(24)之布局视图工具类(地图打印预览)
打印预览工具OnClick事件 public override void OnClick() { AxPageLayoutControl pageLayoutControl = AxPageLayoutControl.FromChildHandle((IntPtr)m_HookHelper.ActiveView.ScreenDisplay.hWnd) as AxPageLayoutControl; if原创 2021-04-22 15:40:16 · 1361 阅读 · 0 评论 -
ArcGIS Engine基础(23)之布局视图工具类(地图打印设置)
工具OnClick事件 public override void OnClick() { AxPageLayoutControl pageLayoutControl = AxPageLayoutControl.FromChildHandle((IntPtr)m_HookHelper.ActiveView.ScreenDisplay.hWnd) as AxPageLayoutControl; if (原创 2021-04-22 15:31:48 · 1675 阅读 · 0 评论 -
ArcGIS Engine基础(22)之布局视图工具类(更换打印模板)
public override void OnClick() { IMapDocument newDocument; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = ""; openFileDialog.Filter = "Map Documents (*.mxd;*.mxt)|*....原创 2021-04-21 20:28:09 · 873 阅读 · 0 评论 -
ArcGIS Engine基础(21)之面积测量(带内外环面积计算方法、地理坐标系和投影坐标系通用)
//计算面积值 private void ReCalculateArea(IPolygon trackPolygon) { double totalArea = 0.0; double totalAreaKil = 0.0; string unitDescriptor = ""; esriUnits unit=m_HookHelper.FocusMap....原创 2021-04-17 19:11:20 · 1864 阅读 · 0 评论 -
ArcGIS Engine基础(20)之长度测量(地理坐标系和投影坐标系通用)
private void ReCalculateLength(IPolyline trackLine) { double fixedLength = 0.0; double fixedLengthKil = 0.0; double totalLength = 0.0; double totalLengthKil = 0.0; strin...原创 2021-04-16 20:51:45 · 1716 阅读 · 0 评论 -
ArcGIS Engine基础(19)之元素标注(以距离标注和面积标注为例)
距离标注主要代码:带附加箭头属性的线标注。 private void AddDisLineElement(IActiveView activeView, IPolyline disLine) { if (activeView != null) { try { IGraphicsContainer graphicsCont原创 2021-04-16 19:49:10 · 2381 阅读 · 0 评论 -
ArcGIS Engine基础(18)之拓扑检查(根据数据集创建拓扑、添加拓扑规则、添加参与拓扑图层、验证拓扑、输出错误信息等)
/// <summary> /// 建立拓扑 /// </summary> /// <param name="featureDataset">拓扑分析的数据集</param> /// <param name="TopologyName">拓扑名</param> /// <param name="insteadIfExit">取代原拓扑<...原创 2021-04-16 19:24:02 · 1325 阅读 · 0 评论 -
ArcGIS Engine基础(17)之创建相同结构的空要素类
/// <summary> /// 建立同样结构的FeatureClass /// </summary> /// <param name="pSrcFeatureClass">源FeatureClass</param> /// <param name="pDstWorkspace">目的工作空间</param> /// <param ...原创 2021-04-11 16:14:41 · 320 阅读 · 0 评论 -
ArcGIS Engine基础(16)之根据不同工作空间创建要素类
可根据不同工作空间创建不同类型要素类,工作空间包括shapefile、gdb、sde、内存工作空间等,几何类型包括点线面要素类,同时支持要素类型为注记类型。 /// <summary> /// 创建工作空间的FeatureClass /// </summary> /// <param name="pFCWorkspace">工作空间</param> /// <param原创 2021-04-11 15:46:08 · 567 阅读 · 0 评论 -
ArcGIS Engine基础(15)之创建栅格数据集(IRasterDataset)
/// <summary> /// 创建RasterDataset数据集 /// </summary> /// <param name="pWs">打开的工作空间</param> /// <param name="sDatasetName">Dataset的名字</param> /// <param name="iBands">...原创 2021-04-08 20:34:06 · 2619 阅读 · 0 评论 -
ArcGIS Engine基础(14)之创建栅格目录(IRasterCatalog)
/// <summary> /// 创建RasterCatalog数据集 /// </summary> /// <param name="pWs">打开的工作空间</param> /// <param name="sCatalogName">RasterCatalog的名字</param> /// <param name="sRast...原创 2021-04-08 20:31:14 · 770 阅读 · 2 评论 -
ArcGIS Engine基础(13)之要素数据集操作(创建和读取)
/// <summary> /// 建立新的FeatureDataSet /// </summary> /// <param name="featureWorkspace">工作空间</param> /// <param name="spatialReference">坐标参考系</param> /// <param name="dX...原创 2021-04-08 20:16:24 · 1589 阅读 · 0 评论 -
ArcGIS Engine基础(12)之新图层属性设置继承参考图层
将参考图层中的所有属性设置信息传递到新图层中,包括图层的渲染信息。 /// <summary> /// 设置图层 /// </summary> public static void SetupLayer(ILayer layer, ILayer referenceLayer) { if (layer == null || referenceLayer == null) retu原创 2021-04-08 19:43:24 · 582 阅读 · 0 评论 -
ArcGIS Engine基础(11)之获取组合图层的所有子图层
一个mxd文档,往往不只是单独的图层集合,存在在图层组结构,以下提供读取组合图层中的所有子图层的方法。 /// <summary> /// 获取组合图层的所有子图层 /// </summary> /// <param name="layer">组合图层</param> /// <param name="layers">子图层字典</param>原创 2021-04-08 19:36:59 · 555 阅读 · 0 评论 -
ArcGIS Engine基础(10)之获取要素类唯一值
获取唯一值可用于唯一值符号化参数方法1 使用IQueryDef (只支持geodatabase,不支持shpfile) //方法1 使用IQueryDef (只支持geodatabase,不支持shpfile) IDataset dataset = (featureClass as IDataset); IWorkspace workspace = dataset.Workspace;原创 2021-03-31 20:49:17 · 1748 阅读 · 0 评论 -
ArcGIS Engine基础(9)之随机生成点线面符号
/// <summary> /// 获得默认的随机生成的符号 /// </summary> /// <param name="geometryType">实体类型</param> /// <returns>默认的随机生成的符号</returns> public static ISymbol GetDefaultSymbol(esriGeom...原创 2021-03-31 20:37:19 · 523 阅读 · 0 评论 -
ArcGIS Engine基础(8)之栅格计算器
1、实现类似arctoolbox中的 空间分析工具-》地图代数-》栅格计算器功能,对于需要使用表达式进行栅格计算时非常有效果。如:实现两个栅格相加,并且将NODATA值设置为0,这样NODATA也可以参与计算。string expression = string.Format("Con(IsNull([{0}]),0,[{0}])+ Con(IsNull([{1}]),0,[{1}])", rasterSymbol1, rasterSymbol2);2、要保证输出范围与最大栅格范围一致时,.原创 2021-03-31 20:35:19 · 7300 阅读 · 2 评论 -
ArcGIS Engine基础(7)之栅格数据集常用操作
/// <summary> /// 获取栅格图层的属性表 /// </summary> /// <param name="layer">栅格图层</param> /// <returns></returns> public static ITable GetRasterITableByLayer(ILayer layer) ...原创 2021-03-30 19:41:51 · 1311 阅读 · 0 评论 -
ArcGIS Engine基础(6)之关系连接Relationship
public static bool AddJoin(IFeatureLayer featureLayer, string keyField, ITable joinTable, string joinField, esriJoinType joinType) { try { if (featureLayer is IDisplayRelationshipClass) { ...原创 2021-03-30 19:35:25 · 539 阅读 · 0 评论 -
ArcGIS Engine基础(5)之多个实体同时闪烁
/// <summary> /// 同时闪烁多个实体 /// </summary> /// <param name="activeView">当前地图视图</param> /// <param name="geometries">实体数组</param> public static void FlashGeometries(IActiveV...原创 2021-03-30 19:08:11 · 345 阅读 · 0 评论 -
ArcGIS Engine基础(4)之地图输出
实现将地图输出为图片 /// <summary> /// 地图输出 /// </summary> /// <param name="map">地图</param> /// <param name="outputFile">输出文件路径</param> /// <param name="resolution">输出精度</原创 2021-03-30 19:05:39 · 973 阅读 · 0 评论 -
ArcGIS Engine基础(3)之坐标串范围文件导入和导出
//导出几何实体的坐标串到指定文件public void ExportCoordinates(string fName, IGeometry[] pGeometries) { FileInfo fi = new FileInfo(fName); byte[] log = null; using (FileStream fs = fi.Create()) { foreach (IGeometry pG..原创 2021-03-30 18:53:58 · 824 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(数据源工厂)
针对前几篇的数据源接口,整合一个数据源的工厂类,方便调用。 public static IDataSource CreateInstance(string dataSourceType) { switch (dataSourceType) { case ".shp": return ShapefileDataSource.CreateSingleton(); .原创 2021-03-27 17:53:18 · 222 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(Shapefile)
实现根据字符串获取Shapefile工作空间和图层private static ShapefileDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private ShapefileDataSource() { } public static ShapefileDa原创 2021-03-27 17:49:33 · 281 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(SDE)
实现根据字符串获取SDE空间数据库的工作空间private static SdeDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private SdeDataSource() { } public static SdeDataSource CreateSingle原创 2021-03-27 17:47:26 · 338 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(PersonalGdb)
实现根据字符串获取PersonalGdb个人地理数据工作空间和所有图层名 private static PersonalGdbDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private PersonalGdbDataSource() { } public st原创 2021-03-27 17:47:06 · 431 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(LocalRaster)
实现根据字符串获取LocalRaster本地影像工作空间和图层 private static LocalRasterDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private LocalRasterDataSource() { } public static原创 2021-03-27 17:46:50 · 340 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(InMemory)
实现根据字符串获取InMemory内存工作空间private static InMemoryDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private InMemoryDataSource() { } public static InMemoryDataSou原创 2021-03-27 17:46:35 · 309 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(FileGDB)
实现根据字符串获取FileGDB类型工作空间private static FileGdbDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private FileGdbDataSource() { } public static FileGdbDataSource原创 2021-03-27 17:46:16 · 535 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(Cad)
实现根据字符串获取CAD工作空间和图层 private static CadDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); private CadDataSource() { } public static CadDataSource CreateS原创 2021-03-27 17:45:56 · 263 阅读 · 0 评论 -
ArcGIS Engine基础(2)之各类数据源管理(AGSServer)
实现根据字符串获取AGSServer图层 private static AGSServerDataSource _instance = null; // 获取实例互斥锁 private static readonly object _getInstanceMutexLocker = new object(); public static readonly char DATASOURCE_SPLIT_CHAR = '|'; public s原创 2021-03-27 17:45:32 · 303 阅读 · 0 评论 -
ArcGIS Engine基础(1)之Geometry序列化和反序列化
geometry图形序列化和反序列化的一种常见场景是当需要复制图形到剪切板时,通过反序列化可以达到按原样粘贴图形的效果。 /// <summary> ///序列化对象 /// </summary> /// <param name="objectNeedSerialize">需要序列化的对象</param> /// <returns>序列化后的字符串</returns>原创 2021-03-05 21:02:57 · 582 阅读 · 0 评论