最近项目开始要用到ArcEngine中的相交分析,网上的图文并茂的文章相当多,写的非常好,这里不做多的转载。只对我在通过相交分析求两个线段的交点时碰到的问题进行一个记录。
ArcEngine中相交分析用到接口为 ITopologicalOperator 这里需要用到它里面的 Intersect方法,功能很强大,能根据两个交的几何图形得到对应的各种交集(点,线,面等)现在我要做两个线段的交集,代码如下:
IPolyline tmpLine1 = new PolylineClass();
tmpLine1.FromPoint = 起点;
tmpLine1.ToPoint = 终点;
IPolyline tmpLine2 = new PolylineClass();
tmpLine2.FromPoint = 起点;
tmpLine2.ToPoint = 终点;
ITopologicalOperator topoOperator = tmpLine1 as ITopologicalOperator;
IGeometry geo = topoOperator.Intersect(tmpLine2 , esriGeometryDimension.esriGeometry0Dimension);
if (!geo.IsEmpty)
{
IPointCollection Pc = geo as IPointCollection;
IPoint Pt = Pc.get_Point(0);
}
网上有很多相似的代码,都是在MapControl中对两条线段进行相交分析,但是我的两个线段是3D下的,结果是相交点的Z属性为NaN,找了好久,以为是有另外的接口像 IRelationalOperator3D 和IRelationalOperator一样,但是确实没有。最后在google看文章时发现了问题所在。除了起点和终点要是三维点外,IPolyline也要打开Z属性。上面的代码需要加上这个:
IZAware zaware = tmpLine1 as IZAware;
zaware.ZAware = true;
两条线都要加,这样再对其做相交分析就能正常得到Z属性了!
分享到:
相关推荐
在GIS(地理信息系统)开发中,ArcEngine是一个强大的工具,它允许开发者构建具有高级空间分析功能的应用程序。本文将深入探讨如何使用ArcEngine实现各种空间分析功能,包括并集、交集、差集以及缓冲区分析。 首先...
ARCENGINE空间分析是GIS(地理信息系统)领域中的一个重要组成部分,主要应用于处理与地理位置相关的数据,进行复杂的地理空间分析。在本教程中,我们将深入探讨ARCENGINE如何帮助用户进行空间分析,提升对地理信息...
本文将深入探讨ArcEngine基于C#的开发,尤其是如何实现“相交”和“联合”这两种重要的空间分析操作。 首先,ArcEngine的核心是其丰富的API,提供了对地图数据、图层、几何对象等的全面访问。在C#环境中,我们可以...
arcengine空间分析,有一些缓冲,叠加,查询分析
从给定的文件信息来看,我们正在探讨的是在ArcEngine环境下进行空间分析的代码实现,具体聚焦于一种称为“叠加求交(Intersect)”的空间分析方法。ArcEngine是Esri公司开发的一个强大的地理信息系统(GIS)开发工具...
属性查询是ArcEngine中的基本功能之一。它允许用户根据属性字段的值来筛选数据,类似于数据库中的SQL查询。例如,你可以查找所有人口超过100万的城市或者植被覆盖度超过50%的区域。在代码实现时,这通常涉及到...
ArcEngine是由Esri公司提供的一个开发工具,它允许开发者创建自定义的GIS应用程序,集成地图显示、空间数据处理和空间分析等功能。 在GIS中,最短路径分析通常用于寻找两个或多个地理点之间的最优路径,这在物流...
ArcEngine是Esri公司提供的一个开发工具集,它允许开发者利用C#等编程语言创建地图应用,进行复杂的地理空间处理和分析。本篇文章将深入探讨如何使用C#和ArcEngine进行空间查询以及属性查询。 首先,让我们理解什么...
在本项目中,"ArcEngine网络分析服务,含方向导航" 提供了访问ArcGIS Server服务的功能,尤其是网络分析服务,以实现路径规划和导航。 首先,我们来看网络分析服务的核心概念。网络分析是基于地理网络模型,该模型...
在GIS(地理信息系统)开发中,ArcEngine是一个强大的工具,它允许开发者构建具有地图显示、空间分析和数据管理功能的应用程序。本主题聚焦于“基于ArcEngine的空间查询统计”,这是一项核心功能,用于从地理数据库...
在本文中,我们将深入探讨如何使用VS2010 C#和ArcEngine来实现属性查询以及基于位置(空间)的查询。ArcEngine是Esri公司提供的一个强大的GIS开发平台,它允许开发者创建桌面、Web以及移动GIS应用程序。通过C#语言,...
AE(ArcEngine)是Esri公司开发的一款强大的GIS(地理信息系统)开发平台,它提供了丰富的API,使得开发者能够创建各种地图应用、空间分析工具以及数据管理解决方案。在本主题中,我们将聚焦于“AE要素擦除工具”,...
在GIS(地理信息系统)开发中,ArcEngine是一个强大的平台,它提供了丰富的地图处理和空间分析功能。本主题将深入探讨如何结合ArcEngine和C#语言来实现缓冲区分析,这对于理解和应用地理空间数据至关重要。 缓冲区...
在C#中实现ArcEngine最短路径分析,首先需要导入必要的命名空间: ```csharp using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.NetworkAnalysis; ``` 这些...
对于需要进行空间数据处理与分析的应用场景来说,ArcEngine提供了强大的支持。 #### 二、空间查询基础概念 空间查询是一种重要的GIS功能,它允许用户根据空间位置或几何关系来筛选地理要素。例如,找出某个区域内的...
通过ArcEngine,开发者可以构建桌面、Web以及移动应用程序,实现地图显示、空间数据处理和分析等功能。 缓冲区分析的基本概念是,为地图上的一个或多个地理特征创建一个虚拟边界,这个边界距离特征的几何中心按照...
在GIS(地理信息系统)开发中,ArcEngine是一个强大的工具,它提供了丰富的空间接口来处理和分析地理数据。本文将详细探讨三个重要的空间接口:ITopologicalOperator、IRelationalOperator和IProximityOperator,...
总体来说,"ArcEngine二次开发分析系统"是一个综合性的GIS应用,它不仅覆盖了基础的地图操作,还具备高级的空间分析功能。通过C#的编程,实现了对ArcGIS核心功能的扩展和定制,为用户提供了更为灵活和高效的GIS工作...
ArcEngine提供了丰富的空间分析工具,如缓冲区分析、叠置分析、网络分析等。开发者可以通过编程调用这些工具,实现复杂的地理计算任务。 六、用户界面设计 ArcEngine的二次开发也包括用户界面的定制。开发者可以...