由坐标数据生成点SHP文件,并由多组点生成线SHP文件(上)

本文介绍了如何使用C#编程从Excel表格中的坐标数据生成点和线的SHP文件。作者首先连接Excel,将数据转换为DataTable,然后通过坐标对创建点和线的SHP文件,涉及ArcGIS接口的使用。
摘要由CSDN通过智能技术生成

由坐标数据生成点SHP文件,并由多组点生成线SHP文件(上)

在最近的公司项目中,老板要求将外业采集的管线连接点坐标表格数据生成线状的shp文件,上网查了下都是生成点状shp文件的例子,作为一个小白根据例子苦逼摸索了半个星期终于搞定了,放上来和大家分享一下。


实现思路

  • 连接Excel表格,将表格中需要的数据生成DataTable
  • 获取DataTable中的坐标数据,根据要求获取坐标对
  • 创建空的点shp文件,设置属性信息,加载空的点layer
  • 编辑点layer的属性信息,添加点要素
  • 获取DataTable中的坐标数据,根据要求获取点对
  • 创建空的线shp文件,设置属性信息,加载空的线layer
  • 编辑线layer的属性信息,添加线要素

实现步骤

1.连接Excel表格,将表格中需要的数据生成DataTable
本项目是基于.NET平台的AE开发,使用的语言为C#。C#读取Excel表格有三种经典的方法,具体大家可以自行百度,这里不再详细介绍,我采用的是通过OleDB读取Excel文件的方法。实例方法如下:

public DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
    string strConn="Provider=Microsoft.ACE.OLEDB.12.0;"+"Data Source="+strExcelFileName+";"+"Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
    String strExcel="select * from ["+strSheetName+"$]";
    DataSet ds=new DataSet();
    OleDbConnection conn=new OleDbConnection(strConn);
    conn.Open();
    OleDbDataAdapter adapter=new OleDbDataAdapter(strExcel,strConn);
    adapter.Fill(ds,strSheetName);

    conn.Close();
    return ds.Tables[strSheetName];
}

这里有个小地方需要注意一下,Excel的版本不同,源语句的定义也不同,我用的是07以后的版本,如果是97-03的版本应该将部分代码换成

Provider=Microsoft.Jet.OLEDB.4.0;

2.获取DataTable中的坐标数据,根据要求获取坐标对
步骤1中得到的DataTable实质上就是一张二维表,它的格式和Excel表是一样的,我这里的表格数据中一共包含了七项数据,分别是管线起始点的ID,管线起始点代号,管线连接点代号,管线起始点X坐标,管线起始点Y坐标,管线起始点高程,管线起始点埋深,如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值