⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layerquery.cs

📁 C#开发的ArcGIS Server9.2地图选择控件
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using ESRI.ArcGIS.ADF.Web;
using ESRI.ArcGIS.ADF.Web.Geometry;
//using ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools;
//using ESRI.ArcGIS.ADF.Web.UI.WebControls;
using ESRI.ArcGIS.ADF.Web.DataSources;

namespace SelectToolTask
{
    public class LayerQuery
    {
        private IMapFunctionality _mapFunc;
        private string _layerId;
        private SpatialFilter _spFilter;
        IQueryFunctionality _queryFunc;

        public LayerQuery(IMapFunctionality mapFunctionality, string layerId)
        {
            _mapFunc = mapFunctionality;
            _layerId = layerId;
            _spFilter = new SpatialFilter();
            _spFilter.MaxRecords = 1000;
            _spFilter.ReturnADFGeometries = true;
            _spFilter.SearchOrder = SearchOrder.Spatial;
            _queryFunc = null;
        }

        public IMapFunctionality MapFunctionality
        {
            get { return _mapFunc; }
            set { _mapFunc = value; }
        }

        public string LayerId
        {
            get { return _layerId; }
            set { _layerId = value; }
        }

        public int MaxRecords
        {
            get { return _spFilter.MaxRecords; }
            set { _spFilter.MaxRecords = value; }
        }

        public Geometry FilterGeometry
        {
            get { return _spFilter.Geometry; }
            set { _spFilter.Geometry = value; }
        }

        public string WhereExpression
        {
            get { return _spFilter.WhereClause; }
            set { _spFilter.WhereClause = value; }
        }

        public DataTable DoQuery()
        {
            _queryFunc = getQueryFunctionality(this.MapFunctionality);
            
            DataTable dt = _queryFunc.Query(null, this.LayerId, _spFilter);

            return dt;
        }

        private IQueryFunctionality getQueryFunctionality(IMapFunctionality mapFunct)
        {
            IQueryFunctionality qfunc = null;
            IGISResource gisresource = mapFunct.Resource;
            bool supported = gisresource.SupportsFunctionality(
                typeof(IQueryFunctionality));
            if (!supported)
                throw new Exception("资源 " + gisresource.Name +
                    " 不支持查询.");
            else
            {
                qfunc = (IQueryFunctionality)
                    gisresource.CreateFunctionality(
                    typeof(IQueryFunctionality), null);
            }
            return qfunc;
        }

        /// <summary>
        /// Removes the query functionality from the map resource.
        /// </summary>
        public void Close()
        {
            if (_queryFunc != null)
                this.MapFunctionality.Resource.Functionalities.Remove(_queryFunc);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -