【问题标题】:Intersect two layers and get resulting features相交两层并获得结果特征
【发布时间】:2011-10-17 14:17:48
【问题描述】:

我在地图上有 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桌面功能,我当然可以使用它们!

【问题讨论】:

标签: c# asp.net arcgis esri


【解决方案1】:

我不认为您直接使用 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;

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

【讨论】:

  • 谢谢,但我试图使用 ToIGeometry 函数并且.. 我发现我的程序集没有它!这很奇怪,因为文档说明 10.0 arcgis 服务器 adf 应该有它。我在论坛上发帖:forums.arcgis.com/threads/…
猜你喜欢
  • 2017-05-16
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 2015-12-04
相关资源
最近更新 更多