Spatial filter taken more time for running any other way to improve speed

المشرف العام

Administrator
طاقم الإدارة
I had number of buildings in data (around 600000) i want to check if any building captured less than shape area 25sqm should snap to existing building. i have used spatial filter but it is taken more time for running any alternate way for tool speed improvement

IFeatureCursor bld_cur = building.Search(null, false); IFeature bld_F = bld_cur.NextFeature(); ISpatialFilter pslt = new SpatialFilterClass(); pslt.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; int shparea = building.FindField("SHAPE_Area"); int count = building.FeatureCount(qf); int tgid = building.FindField("TGID"); pgbar.Value = 0; pgbar.Minimum = 0; pgbar.Maximum = count; while (bld_F != null) { pgbar.Value++; lblCount.Text = pgbar.Value + "/" + pgbar.Maximum; Application.DoEvents(); pslt.Geometry = bld_F.Shape; string shparea_val = bld_F.get_Value(shparea).ToString(); double areaval = double.Parse(shparea_val); string tgid_val = bld_F.get_Value(tgid).ToString(); if (building.FeatureCount(pslt) == 1) { dt.Rows.Add(bld_F.OID.ToString(), bld_F.Class.AliasName, tgid_val, "New building shape length < 11 but not snapped with other building"); } bld_F = bld_cur.NextFeature(); } System.Runtime.InteropServices.Marshal.ReleaseComObject(bld_cur);

أكثر...
 
أعلى