我在 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/