相交两个图层并获得结果要素

时间:2011-08-01 16:14:20

标签: c# asp.net arcgis esri

我在地图上有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接口与ADF Geometry对象一起使用?

我无法真正找到样本来交叉两层之间的特征,很可惜Spatial Joins只是一个arcgis桌面功能,我当然可以使用它们!

1 个答案:

答案 0 :(得分:1)

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

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

顺便提一下,我建议你永远不要使用“as”,因为它可以无声地失败(只返回null)。相反,我建议:

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

然后,一旦发生问题,您就会立即看到问题。