Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Itopological操作员,Intersect,这是怎么工作的?_C#_Asp.net_Arcgis_Esri_Arcgis Server - Fatal编程技术网

C# Itopological操作员,Intersect,这是怎么工作的?

C# Itopological操作员,Intersect,这是怎么工作的?,c#,asp.net,arcgis,esri,arcgis-server,C#,Asp.net,Arcgis,Esri,Arcgis Server,我试图将一个层的所有功能与另一个层的所有功能相交,但在执行“ConstructUnion”函数时,web ADF应用程序被卡住了 这是我到目前为止写的代码 // create a geometrybag for layer1 ESRI.ArcGIS.Geometry.IGeometry geometryBag = new ESRI.ArcGIS.Geometry.GeometryBagClass(); geometryBag.SpatialReference = m_firstLayerFirs

我试图将一个层的所有功能与另一个层的所有功能相交,但在执行“ConstructUnion”函数时,web ADF应用程序被卡住了

这是我到目前为止写的代码

// create a geometrybag for layer1
ESRI.ArcGIS.Geometry.IGeometry geometryBag = new ESRI.ArcGIS.Geometry.GeometryBagClass();
geometryBag.SpatialReference = m_firstLayerFirstfeatureIGeometry.SpatialReference;
ESRI.ArcGIS.Geometry.IGeometryCollection geometryCollection = (ESRI.ArcGIS.Geometry.IGeometryCollection)geometryBag;
// Cycle all features of first layer and add them to the collection
foreach (DataRow m_dr in m_firstLayerfeatureGraphics.Rows)
{
    // Takes this feature's geometry
    ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfFeature =
        m_firstLayerfeatureGraphics.GeometryFromRow(m_dr) as ESRI.ArcGIS.ADF.Web.Geometry.Geometry;
    // convert to a igeometry object
    ESRI.ArcGIS.Geometry.IGeometry m_tempfeatureIGeometry =
    ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Local.Converter.ToIGeometry(adfFeature, ctx);
    System.Diagnostics.Debug.WriteLine("m_firstLayerfeatureGraphics +1 ");
    object missing = Type.Missing;
    geometryCollection.AddGeometry(m_tempfeatureIGeometry, ref missing, ref
    missing);
}
ESRI.ArcGIS.Geometry.ITopologicalOperator mtopo1 = new ESRI.ArcGIS.Geometry.PolygonClass();
// FOLLOWING LINE BLOCKS APPLICATION
mtopo1.ConstructUnion((ESRI.ArcGIS.Geometry.IEnumGeometry)geometryBag);

知道为什么吗?

正如本网站的GIS版本所述,这就是解决方案

您需要在 开始和PolygonClass(在代码段末尾附近)在 使用IServerContext.CreateObject创建ArcGIS服务器SOC。你现在 代码在web服务器(或ADF应用程序的任何位置)上创建这些对象 正在运行),这需要大量编组,在许多情况下 似乎永远不会结束

您已经在ctx中引用了服务器上下文 变量,所以您基本上都设置好了。一旦所有的ArcObjects 在ArcGIS服务器上创建,您的问题可能会得到解决