首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

ArcGIS Sever +C# 依据属性值定位

2013-02-25 
ArcGIS Sever +C# 根据属性值定位确定图层上的点的位置时运行程序出错无法将类型为“ESRI.ArcGIS.ADF.Web.G

ArcGIS Sever +C# 根据属性值定位
确定图层上的点的位置时运行程序出错
无法将类型为“ESRI.ArcGIS.ADF.Web.Geometry.Polygon”的对象强制转换为类“ESRI.ArcGIS.ADF.Web.Geometry.Point”。
具体程序如下所示,ArcGIS Sever10+VS2010
 ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter=new ESRI.ArcGIS.ADF.Web.SpatialFilter();
                        spatialfilter.ReturnADFGeometries=true;
                        spatialfilter.MaxRecords=100;
                        spatialfilter.WhereClause="name  like '%"+eventtargs+"%'";

                        datatable=qfunc.Query(null,lids[selindex],spatialfilter);
                        if (datatable != null)
                        {
                            if (datatable.Rows.Count > 0)
                            {
                                for (int j = 0; j < datatable.Columns.Count; j++)
                                {
                                    if (datatable.Columns[j].DataType == typeof(ESRI.ArcGIS.ADF.Web.Geometry.Geometry))
                                    {
                                        ESRI.ArcGIS.ADF.Web.Geometry.Point pnt = (ESRI.ArcGIS.ADF.Web.Geometry.Point)datatable.Rows[0][1];
                                        Map1.CenterAt(pnt);
                                        m_ADFCallBackFunctionString = Map1.CallbackResults.ToString();
                                    }
                                }


                            }
                        }
[解决办法]
因为你是对面状图层进行查询的,将lnames[i]变为点状图层就ok了。
我的问题是这样解决的,希望对你有用
[解决办法]
ESRI.ArcGIS.ADF.Web.Geometry.Polygon pnt1 = (ESRI.ArcGIS.ADF.Web.Geometry.Polygon)datatable.Rows[0][j];
 ESRI.ArcGIS.ADF.Web.Geometry.Point pnt=ESRI.ArcGIS.ADF.Web.Geometry.Polygon.GetCenterPoint(pnt1);
这样也可以解决问题,获得面的中心点,就ok

热点排行