📄 layerquery.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 + -