你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
问题
话题
文章
下载
帮助
登录
注册
AE二次开两个要素拓扑相交求公共边界线Intersect方法出错
在求两个要素的公共边界线的时候,返回的结果是second这个要素的边界(成了自相交了),而不是first要素和second要素的公共边界线。我看了帮助文档,参数是没的问题,这两个要素是不同的并且用拓扑关系检查了,也是相交的。代码如图所示
2 个回复
朱新颖
赞同来自:
没太理解,如果两个要素有公共边的话,相交线的话是应该和second的边界的一部分重合的,怎么知道返回的结果是second的边界呢?
Saber
-
GIS学生狗
赞同来自:
附上整个代码以及所用的要素图层(高亮部分)
IFeatureLayer curFeatureLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
IFeatureClass pFeatrueClass = curFeatureLayer.FeatureClass;
pGeometry = axMapControl1.TrackRectangle();
ISpatialFilter pSpatiaFilter = new SpatialFilterClass();
pSpatiaFilter.Geometry = pGeometry;
//根据图层类型选择缓冲方式
switch (pFeatrueClass.ShapeType)
{
case esriGeometryType.esriGeometryMultipoint:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
break;
case esriGeometryType.esriGeometryPolyline:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses;
break;
case esriGeometryType.esriGeometryPolygon:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
break;
}
//定义空间过滤器的空间字段
pSpatiaFilter.GeometryField = pFeatrueClass.ShapeFieldName;
IQueryFilter pQueryFilter;
//利用要素过滤器查询要素
pQueryFilter = pSpatiaFilter as IQueryFilter;
IFeatureCursor pFeatureCursor = curFeatureLayer.Search(pQueryFilter, true);
IGeometry first = pFeatureCursor.NextFeature().Shape;
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);
IFeatureCursor pFeatureCursor1 = curFeatureLayer.Search(pQueryFilter, true);
pFeatureCursor1.NextFeature();
IGeometry second = pFeatureCursor1.NextFeature().Shape; System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor1);
ITopologicalOperator TopoOperatorInersect = first as ITopologicalOperator;
ITopologicalOperator TopoOperatorInersect = first as ITopologicalOperator;
IGeometry pGeoInersect = TopoOperatorInersect.Intersect(second, esriGeometryDimension.esriGeometry1Dimension);//要素交集是polylines 是1维的
IPolyline pInersectPolyline = pGeoInersect as IPolyline;
要回复问题请先
登录
或
注册
发起人
Saber
GIS学生狗
相关问题
两个图层投影坐标系都一样,但就是不能叠加在一起。怎么办,求大神指点。一个是县的灾害点,一个是县的行政区划。
arcgis10.2有时候无法复制粘贴要素
两个栅格文件分辨率一致,但像元位置不一致,如何处理?
在windows server2008 R2 64位中安装了portal 10.5 设置好托管arcgis server站点,并用data store为托管数据库,发布数据出错
如何使用脚本或其他方法,将图层属性中属性域原值内容替换为属性域描述?
Engine中如何判断两个要素类的空间参考是否是同一个?
基于ArcGIS的CAD数据向GIS数据转换方法
怎样调整要素的大小,比例不变的情况下?
面规则中 必须被其他要素的要素类覆盖 与 必须被其他要素覆盖 区别是什么?
arcgis for python 如何获取线要素起点 终点坐标
注记要素转json,将json转要素,出现001558错误
问题状态
最新活动:
2020-04-10 13:15
浏览:
2103
关注:
2
人
—— 扫技术支持中心微信服务号!
—— 让GIS知乎问答随时随地!
2 个回复
朱新颖
赞同来自:
Saber - GIS学生狗
赞同来自:
IFeatureClass pFeatrueClass = curFeatureLayer.FeatureClass;
pGeometry = axMapControl1.TrackRectangle();
ISpatialFilter pSpatiaFilter = new SpatialFilterClass();
pSpatiaFilter.Geometry = pGeometry;
//根据图层类型选择缓冲方式
switch (pFeatrueClass.ShapeType)
{
case esriGeometryType.esriGeometryMultipoint:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
break;
case esriGeometryType.esriGeometryPolyline:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses;
break;
case esriGeometryType.esriGeometryPolygon:
pSpatiaFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
break;
}
//定义空间过滤器的空间字段
pSpatiaFilter.GeometryField = pFeatrueClass.ShapeFieldName;
IQueryFilter pQueryFilter;
//利用要素过滤器查询要素
pQueryFilter = pSpatiaFilter as IQueryFilter;
IFeatureCursor pFeatureCursor = curFeatureLayer.Search(pQueryFilter, true);
IGeometry first = pFeatureCursor.NextFeature().Shape;
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);
IFeatureCursor pFeatureCursor1 = curFeatureLayer.Search(pQueryFilter, true);
pFeatureCursor1.NextFeature();
IGeometry second = pFeatureCursor1.NextFeature().Shape; System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor1);
ITopologicalOperator TopoOperatorInersect = first as ITopologicalOperator;
ITopologicalOperator TopoOperatorInersect = first as ITopologicalOperator;
IGeometry pGeoInersect = TopoOperatorInersect.Intersect(second, esriGeometryDimension.esriGeometry1Dimension);//要素交集是polylines 是1维的
IPolyline pInersectPolyline = pGeoInersect as IPolyline;
要回复问题请先登录或注册
发起人
GIS学生狗
相关问题
问题状态
—— 扫技术支持中心微信服务号!
—— 让GIS知乎问答随时随地!