Вот функция:
void LocateFeatures(string LayerId,string FieldName , string Constraint)
{
ESRI.ArcGIS.ADF.Web.QueryFilter qFilter = new ESRI.ArcGIS.ADF.Web.QueryFilter();
qFilter.ReturnADFGeometries = false;
qFilter.SubFields = new ESRI.ArcGIS.ADF.StringCollection(FieldName, ',');
qFilter.WhereClause = String.Format(FieldName + "={0}", Constraint);
qFilter.ReturnADFGeometries=true;
IQueryFunctionality qFunc = GetQueryFunc();
string[] layerIds;
string[] layerNames;
qFunc.GetQueryableLayers (null, out layerIds, out layerNames);
System.Data.DataTable dt = qFunc.Query(null , LayerId, qFilter);
if (dt == null) return;
// объект есть, нашли!
// начинаем центровку объекта
ESRI.ArcGIS.ADF.Web.Geometry.Envelope env;
ESRI.ArcGIS.ADF.Web.Geometry.Polygon pol;
ESRI.ArcGIS.ADF.Web.Geometry.Geometry geo;
// ниже
System.Data.DataRow drow;
int tcnt;
drow=dt.Rows[0];
pol = (ESRI.ArcGIS.ADF.Web.Geometry.Polygon)drow["shape"];
geo = (ESRI.ArcGIS.ADF.Web.Geometry.Geometry)drow["shape"];
env = geo as ESRI.ArcGIS.ADF.Web.Geometry.Envelope;
env = pol as ESRI.ArcGIS.ADF.Web.Geometry.Envelope;
tcnt = dt.Rows.Count;
}
В результате env всегда null!?
Как мне получить энвелоп найденного объекта?
Вообще, задача показать найденный объект в центре и в его экстенте...
на ArcMap делал просто:
Sub ZoomToFeature(pFeat As IFeature)
Dim ext As IEnvelope
Set ext = pFeat.Shape.Envelope
mxd.ActiveView.Extent = ext
mxd.ActiveView.Refresh
End Sub