c# - 相交两层并获得结果特征

标签 c# asp.net arcgis esri

我在 map 上有 X 个图层,我需要将所选图层(每次两个)相交并对生成的要素进行着色。

我正在尝试让这段代码正常工作

// get first feature (index 0)
ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfFeature =
                m_firstLayer.GeometryFromRow(m_firstLayer.Rows[0]) 
as ESRI.ArcGIS.ADF.Web.Geometry.Geometry;

// THE FOLLOWING LINE RETURNS NULL
ESRI.ArcGIS.Geometry.IGeometry featureInterface = 
    adfFeature as ESRI.ArcGIS.Geometry.IGeometry;

ESRI.ArcGIS.Geometry.ITopologicalOperator topoOp = 
    adfFeature as ESRI.ArcGIS.Geometry.ITopologicalOperator;

如何将 IGeometry 接口(interface)与 ADF 几何对象一起使用?

我真的找不到样例来使两层之间的要素相交,可惜 Spatial Joins 只是一个 arcgis 桌面功能,我肯定可以使用它们!

最佳答案

我认为您不会直接使用 IGeometry。但是,如果您知道专门的类型(点、折线、多边形),您可以 convert (请参阅“Web ADF 到 ArcGIS Server ArcObjects”项目符号)到 ArcObjects。

您可以测试您的 ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfFeature 是什么子类型,并相应地进行转换。

顺便说一句,我建议您永远不要使用“as”强制转换,因为它可能会无提示地失败(只是返回 null)。相反,我建议:

ESRI.ArcGIS.Geometry.IGeometry featureInterface = 
    (ESRI.ArcGIS.Geometry.IGeometry)adfFeature;

那么问题一出现你就会看到。

关于c# - 相交两层并获得结果特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901306/

相关文章:

asp.net - 在更新面板中强制刷新图像

c# - 带有 Bootstrap Glyphicon 的 ASP.NET 按钮

python - 尝试根据输入创建一个简单的按属性选择的脚本

c# - 根据组合框中的选定项目获取文件名

c# - 授权属性始终返回 401

asp.net - 普通缓存类和MemoryCache类有什么区别?

android - 如何在 Arcgis Android 中获取道路缓冲区?

ios - 除了 ArcGIS,还有什么好的 iOS 离线 map API?

c# - 以编程方式创建类似 Visio 的图表

c# - 如何获得两个日期之间的月份集合?