24小时热门版块排行榜    

查看: 269  |  回复: 0

利顺业毕求

新虫 (初入文坛)

[求助] AE求距离函数返回值为0

很简单的一个功能 代码如下
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++;
                }
            }
运行的时候报错 报错成这样我也不知道怎么调试了 求大家懂的帮帮忙啊 奇怪的是 报错的时候dist变成了0.0 不知道为什么

AE求距离函数返回值为0
报错.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 利顺业毕求 的主题更新
信息提示
请填处理意见