首页 / 浏览问题 / 组件GIS / 问题详情
根据属性表生成三维矢量同时复制属性信息
216EXP 2018年11月26日

SuperMap Objects.NET 9.01组件开发中,我要根绝属性表(Excel为例)生成三维矢量数据集,并且同时把属性表中相应的非系统属性信息复制到新生成的三维矢量数据集中对应的字段。

下面以三维矢量点数据集为例,我的思路是:

1)把属性表(Excel为例)转为DataTable;

2)新建三维矢量点数据集(并设置相应的投影坐标系),同时遍历DataTable字段类型名称,新建三维矢量点数据集中对应的字段信息。

3)遍历DataTable,根据x,y,z生成三维点,同时把其余的属性信息复制到该记录的其它对应的字段中。

结果:可以生成对应的三维点矢量数据集,但是第三步中的属性信息复制不过去。

结合之前的提问,我发现,

第一:根据一个数据集属性信息去生成新的数据集时,可以利用Recordset.AddNew()方法在生成矢量数据集的同时添加其它的飞系统属性字段信息(http://qa.supermap.com/34094?show=34094#q34094)。

AddNew(Geometry, Dictionary<(Of <(String, Object>)>))

第二:根据一个属性表(Excel为例)去生成新的数据集时,可以利用Recordset.AddNew()方法生成矢量数据集,但是此方法不能把对应的其余属性信息同步复制到新生成的矢量数据集中。

测试数据如下:

(此测试数据的投影坐标以PrjCoordSysType.Xian19803DegreeGk38N 为例)。

问题总结:根据属性表生成三维矢量数据集时,AddNew(Geometry,Dictionary)方法不能在生成矢量数据集的同时把这些非系统字段信息复制进去。

1个回答

您好!这个必须在新建数据集时设置相应的字段类型,您可以参考这个范例http://qa.supermap.com/37052

3,352EXP 2018年11月26日
我设置过相应的数据字段类型,X,Y,Z,WLDP这几个字段是double类型,其余的字段为char类型或者varchar类型(string类型),但是AddNew方法仍然加不上去,请您用我的测试数据试试。
...