你好,我在做组件开发时,需要实现属性转二维点的同时并把属性表中的属性赋给相应的点此功能。目前我的实现方法分为两个步骤:第一步,从属性读取坐标信息(经纬度信息X,Y),然后直接用点对象的构造函数GeoPoint 构造函数 (Double, Double)来传入X,Y的坐标,构造点对象,并创建一个类型是Point的Datasetvector,然后获取它的Recordset,使用Recordset.Addnew方法即可将点对象加进点数据集。第二步:遍历该Point的Datasetvector的Recordset,并新建非系统字段(除"Sm"开头以外的字段)。
我遇到的问题是:
第一,效率问题,我的测试数据(Excel)中有3000条记录,40个字段。我用Desktop桌面完成属性转点大约需要8秒钟,但是我用我以上方法完成此功能需要将近4分钟,效率相差如此之大,我想请问下原因在哪里?
第二:以上两步我想一步实现,就是在创建每个GeoPoint的同时并且把非系统属性赋给该GeoPoint,能否一步实现?我在官网文档上看到AddNew的第二个重载方法,即AddNew(Geometry,Dictionary<Sting,Object>),把非系统属性字段信息存储到Dictionary中,但是其效果和AddNew(Geometry)函数是一样的,只能创建图层,其非系统属性信息没有加进去。请问这是什么原因?