【AE】大数据点文件读取生成SHP文件时使用IFeatureBuffer快速提高读取效率

本文介绍了在ArcGIS Engine(AE)开发中,通过使用IFeatureBuffer接口来显著提升从大数据点文件读取并生成SHP文件的效率。通过对要素缓冲区的操作,减少了不必要的内存分配,从而加快了读取速度。

Creating features

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Creating_features/00010000049v000000/

#region 创建要素

            int featCount = 0;
            IFeatureClass pFeatClass = pFeatLayer.FeatureClass;
      IFeatureCursor pFeatureCursor = pFeatClass.Insert(true);

            foreach (var id_car in m_dicCar_Obj)
            {
                foreach (var trace in id_car.Value.TraceList)
                {
                    IFeatureBuffer pFeatureBuffer = pFeatClass.CreateFeatureBuffer();
                   
                    IPoint pPoint = new ESRI.ArcGIS.Geometry.Point();
                    pPoint.X = trace._cp.Lng;
                    pPoint.Y = trace._cp.Lat;

                    pFeatureBuffer.Shape = pPoint;
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("车辆识别码"), id_car.Key);
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("GPS时间"), trace.GPSTime);
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("经度"), trace._cp.Lng);
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("纬度"), trace._cp.Lat);
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("方向"), trace.GPSDirection);
                    pFeatureBuffer.set_Value(pFeatureBuffer.Fields.FindField("里程仪速"), trace.GPSSpeed);
                    pFeatureCursor.InsertFeature(pFeatureBuffer);
                    featCount++;
                }

            }

            pFeatureCursor.Flush();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);

            #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值