首页 / 浏览问题 / 组件GIS / 问题详情
如何通过导入excel表,(里面包含了点的起点和终点)生成由起点终点连接成的线
1EXP 2022年07月04日

在idesktop中没有找到,能够直接通过输入起点和终点坐标生成线的功能,想通过iObejcts .net实现这个功能,不知道具体怎么去实现。

这是arcgis中的xytoline工具,

1个回答

您好,导入 Excel 文件的功能目前只在 SuperMap iDesktop 桌面端提供,SuperMap iObjects .NET 组件目前并不支持直接导入 Excel 文件,建议您先将 Excel 文件转换为 CSV 文件,详细流程可以参考以下逻辑实现:

    方案一:在 Excel 文件转换为 CSV 文件的过程中,根据 X1、Y1、X2、Y2 4列字段的信息,构建一个新字段,并以 WKT 字符串的形式(如:linestring(x1 y1, x2 y2))填充其值,再通过 SuperMap iObjects .NET 组件中提供的 ImportSettingCSV 接口按照以 WKT 形式导入数据;

    方案二:根据转换好的CSV文件,联系两次分别以 X1、Y1 和 X2、Y2 字段信息作为点坐标系导入成2个点数据集,然后新建线数据集,读取点数据集中的点数据,两个点数据集彼此对应,在内存中构建线对象并存入线数据集中,最后删除导入的两个点数据集即可。

希望可以帮到您。
2,158EXP 2022年07月04日
想请问以下,关于第二个方案,在 SuperMap iObjects .NET中应该使用具体的什么方法去实现两点成线呢?或者如果要实现相关的功能,需要用到哪些方法类,这样我可以在SuperMap iObjects .NET的文档中进行学习了解。

您好,要实现方案二的话,建议您可以参数 ImportSettingCSV、DatasetVector、Recordset、GeoLine 等类,详情可参考:

  1. 通过 ImportSettingCSV 对象设置按 WKT 形式导入 CSV 数据成点数据集;
  2. 通过点数据集(DatasetVector)获取点记录集(Recordset);
  3. 从点记录集中获取每条记录的几何要素(Geometry),转换成 GeoPoint 点对象;
  4. 根据两个点记录集获取对应的一组(2个)点对象,根据点对象的坐标构建一个新的线对象(GeoLine);
  5. 再通过 Recordset.Add 方法将新构建的线对象添加到新创建的线数据集中。

希望可以帮到您。

感谢解答
...