问题描述
- ae+c#中返回距离函数报错
-
IFeatureLayer aFL = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
IFeatureLayer bFL = axMapControl1.Map.get_Layer(1) as IFeatureLayer;
IFeatureClass aFClass = aFL.FeatureClass;
IFeatureCursor aFC = aFClass.Search(null, true);
IFeature aF = aFC.NextFeature();
int num = 0;
while (aF!= null)
{
if (Convert.ToInt32(aF.get_Value(aF.Fields.FindField("price"))) == 0)
{
textBox1.Text = "现在跑" + num + "个栅格";
textBox1.Refresh();
num++;
aF = aFC.NextFeature();
continue;
}
else
{
IFeatureClass bFClass = bFL.FeatureClass;
IQueryFilter bQF = new QueryFilterClass();
bQF.WhereClause = "类型 = " + "4";
IFeatureCursor bFC = bFClass.Search(bQF, true);
IFeature bF = bFC.NextFeature();
double minDist = 99999.9;
while (bF != null)
{
IIdentify aI = aFL as IIdentify;
IArray aA = aI.Identify(bF.Shape);
int idCount = 0;
double featureMinDist = 99999.9;
while (idCount < aA.Count)
{
IFeatureIdentifyObj aFIO = aA.get_Element(idCount) as IFeatureIdentifyObj;
IRowIdentifyObject aRIO = aFIO as IRowIdentifyObject;
IFeature aaF = aRIO.Row as IFeature;
IGeometry aG = aF.Shape as IGeometry;
IProximityOperator aPO = aG as IProximityOperator;
double dist = aPO.ReturnDistance(aaF.Shape as IGeometry);
if (dist < featureMinDist)
{
featureMinDist = dist;
}
idCount++;
}
if (featureMinDist < minDist)
{
minDist = featureMinDist;
}
bF = bFC.NextFeature();} aF.set_Value(aF.Fields.FindField("ggdist"), minDist); aF.Store(); aF = aFC.NextFeature(); textBox1.Text = "现在跑" + num + "个栅格"; textBox1.Refresh(); num++; } } 错误图为![图片说明](http://img.ask.csdn.net/upload/201503/19/1426740041_962748.png) 请教哪里出问题了 而且为什么报错的时候dist值为0呢
时间: 2024-09-17 04:38:39