建立shape文件(c#+AE)

C#不用ArcEngine,生成Shp文件(一)---------shapefile数据说明 由于篇幅限制本篇就来单独介绍一下.shp文件的结构;下面会持续更新,下一篇帖代码,介绍读取.shp文件和生成.shp文件的方法。   Shape files数据说明   Shapefile文件是美国环境系统研究所(ESRI)所研制的GIS文件系统格式文件,是工业标准的矢量数据文件。 Shapefile将空间特征表中的非拓扑几何对象和属性信息存储在数据集中,特征表中的几何对象存为以坐标点集表... 阅读详情

           string strFolder = "D://zt";
            string strName = "MyShape";
            string strShapeFieldName = "Shape";

            IFeatureWorkspace pFWS;
            IWorkspaceFactory pWorkSpaceF;

            pWorkSpaceF = new ShapefileWorkspaceFactoryClass();
            pFWS = pWorkSpaceF.OpenFromFile(strFolder, 0) as IFeatureWorkspace;

            IFields pFields;
            IFieldsEdit pFieldsEdit;
            pFields = new FieldsClass();

            pFieldsEdit = pFields as IFieldsEdit;

            IField pField;
            IFieldEdit pFieldEdit;
            pField = new FieldClass();
            pFieldEdit = pField as IFieldEdit;

            pFieldEdit.Name_2 = strShapeFieldName;
            pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

            IGeometryDef pGeomDef;
            IGeometryDefEdit pGeomDefEdit;
            pGeomDef = new GeometryDefClass();

            pGeomDefEdit = pGeomDef as IGeometryDefEdit;
            pGeomDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
            pGeomDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass();


            pFieldEdit.GeometryDef_2 = pGeomDef;

            pFieldsEdit.AddField(pField);


            IFeatureClass pFeatureClass;

            pFeatureClass = pFWS.CreateFeatureClass(strName, pFields, null, null, esriFeatureType.esriFTSimple, strShapeFieldName, "");

 

==========================================================================

public   void   ShpPointSave3(string   LC,   string   LE,   object   id1,   object   id2,   object   id3,   object   idEle)  
                  {  
                          //  
                          object   newVert   =   null;  
                          object   newField   =   null;  
                          string   gpxPath   =   "";  
                          string   shpPath   =   "";  
                          string   pointId   =   "";  
                          string   pointName   =   "";  
                          string   pointEle   =   "";  
                          string   pointCode   =   "";  
                          string   s   =   "";  
                          double   pointLon   =   0;  
                          double   pointLat   =   0;  
                          int   pos   =   0;  
                          gpxPath   =   txtGpxPath.Text.ToString().Trim()   +   "//"   +   LC   +   ".gpx";  
                          shpPath   =   txtShpPath.Text.ToString().Trim()   +   "//"   +   LC   +   ".shp";  
   
                          //if()  
                          axShapeFiles1.OpenShape(shpPath,   ArcViewShapeFileOCX_crp.eNew.shpCreate,   ArcViewShapeFileOCX_crp.eShapeType.shpPoint);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(id1.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   30,   0);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(id2.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   50,   0);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(id3.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   30,   0);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(idEle.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   30,   0);  
                          axShapeFiles1.AppendFieldDefs();  
   
                          DataSet   ds   =   new   DataSet();  
                          DataTable   dt   =   new   DataTable();  
                          ds.ReadXml(gpxPath);  
                          dt   =   ds.Tables["wpt"];  
                          if   (dt   ==   null)  
                          {  
                                  ds.Dispose();  
                                  return;  
                          }  
                          for   (int   i   =   0;   i   <   dt.Rows.Count;   i++)  
                          {  
                                  s   =   dt.Rows[i]["name"].ToString().Trim();  
                                  pos   =   s.IndexOf("   ");  
                                  pointCode   =   s.Substring(0,   pos);  
                                  s   =   s.Replace(pointCode,   "").Trim();  
                                  pos   =   s.IndexOf("   ");  
                                  pointName   =   s.Substring(0,   pos);  
                                  pointId   =   s.Substring(pos);  
                                  pointEle   =   dt.Rows[i]["ele"].ToString().Trim();  
                                  //  
   
                                  object   o_pointId   =   (object)pointId;  
                                  object   o_pointName   =   (object)pointName;  
                                  object   o_pointEle   =   (object)pointEle;  
                                  object   o_pointCode   =   (object)pointCode;  
                                  axShapeFiles1.ShapeFields.get_Item(ref(id1)).set_Value(ref(o_pointId));  
                                  axShapeFiles1.ShapeFields.get_Item(ref(id2)).set_Value(ref(o_pointName));  
                                  axShapeFiles1.ShapeFields.get_Item(ref(id3)).set_Value(ref(o_pointCode));  
                                  axShapeFiles1.ShapeFields.get_Item(ref(idEle)).set_Value(ref(o_pointEle));  
   
                                  pointLat   =   Convert.ToDouble(dt.Rows[i]["lat"]);  
                                  pointLon   =   Convert.ToDouble(dt.Rows[i]["lon"]);  
                                  newVert   =   axShapeFiles1.Vertices.AddVertice(pointLon,   pointLat,   0,   null,   null,   0,   null);  
                                  axShapeFiles1.CreateShape();  
                          }  
                  }  
   
                  public   void   ShpLineSave2(string   LC,   string   LE)  
                  {  
                          //  
                          object   newField   =   null;  
                          object   newVert   =   null;  
                          object   Code   =   "Code";  
                          object   Name   =   "Name";  
                          string   gpxPath   =   "";  
                          string   shpPath   =   "";  
                          string   lineId   =   "";  
                          string   lineName   =   "";  
                          //string   s   =   "";  
                          string   lineLon   =   "";  
                          string   lineLat   =   "";  
                          int   pos   =   0;  
                          gpxPath   =   txtGpxPath.Text.ToString().Trim()   +   "//"   +   LC   +   ".gpx";  
                          shpPath   =   txtShpPath.Text.ToString().Trim()   +   "//"   +   LC   +   ".shp";  
   
                          //if()  
                          axShapeFiles1.OpenShape(shpPath,   ArcViewShapeFileOCX_crp.eNew.shpCreate,   ArcViewShapeFileOCX_crp.eShapeType.shpPolyLine);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(Code.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   20,   0);  
                          newField   =   axShapeFiles1.ShapeFields.CreateField(Name.ToString(),   ArcViewShapeFileOCX_crp.eFieldType.shpText,   50,   0);  
                          axShapeFiles1.AppendFieldDefs();  
   
                          DataSet   ds   =   new   DataSet();  
                          DataTable   dt   =   new   DataTable();  
                          ds.ReadXml(gpxPath);  
                          dt   =   ds.Tables["trk"];  
                          if   (dt   ==   null)  
                          {  
                                  ds.Dispose();  
                                  return;  
                          }  
                          /*for   (int   i   =   0;   i   <   dt.Rows.Count;   i++)  
                          {  
                                  s   =   dt.Rows[i]["name"].ToString().Trim();  
                                  pos   =   s.IndexOf("   ");  
                                  lineId   =   s.Substring(0,   pos);  
                                  lineName   =   s.Substring(pos);  
   
                                  DataRelation   dr   =   ds.Tables["trk"].ChildRelations[0];  
                                  for   (int   j   =   0;   j   <   ds.Tables["trk"].Rows.Count;   j++   )  
                                  {  
                                          //lineLat=Convert.ToDouble()  
                                          //newVert=axShapeFiles1.Vertices.AddVertice()  
                                  }  
                                  //foreach(DataRow   row   in   dt.Rows[i]["trkseg"])  
                          }*/  
                          DataRelation   dralTrk   =   ds.Tables["trk"].ChildRelations[0];  
                          string   trkname   =   "";  
                          string   trkcode   =   "";  
                          string   trkpname   =   "";  
                          double   trklon   =   0;  
                          double   trklat   =   0;  
                          double   trkele   =   0;  
                          //short   n   =   0;  
   
                          //trk  
                          foreach   (DataRow   drTrk   in   ds.Tables["trk"].Rows)  
                          {  
                                  //DataTable   dtTrk   =   new   DataTable();  
                                  trkname   =   drTrk["name"].ToString();  
                                  string[]   s   =   trkname.Split('   ');  
                                  trkcode   =   s[0];  
                                  trkpname   =   s[1];  
   
                                  object   o_trkcode   =   (object)trkcode;  
                                  object   o_trkpname   =   (object)trkpname;  
                                  axShapeFiles1.ShapeFields.get_Item(ref(Code)).set_Value(ref(o_trkcode));  
                                  axShapeFiles1.ShapeFields.get_Item(ref(Name)).set_Value(ref(o_trkpname));  
                                   
                                  //trkreg  
                                  foreach   (DataRow   drTrkreg   in   drTrk.GetChildRows(dralTrk))  
                                  {  
                                          DataRelation   dralTrkreg   =   ds.Tables[drTrkreg.Table.TableName].ChildRelations[0];  
   
                                          /*object   o_trkcode   =   null;  
                                          object   o_trkpname   =   null;  
                                          axShapeFiles1.ShapeFields.get_Item(ref(Code)).set_Value(ref())*/  
                                          //point  
                                          int   n   =   1;  
                                          foreach   (DataRow   drLine   in   drTrkreg.GetChildRows(dralTrkreg))  
                                          {  
                                                  trklat   =   Convert.ToDouble(drLine["lat"].ToString());  
                                                  trklon   =   Convert.ToDouble(drLine["lon"].ToString());  
                                                  trkele   =   Convert.ToDouble(drLine["ele"].ToString());  
                                                  short   m   =   (short)n;  
                                                  newVert   =   axShapeFiles1.Vertices.AddVertice(trklon,   trklat,   m,   null,   trkele,   0,   null);  
                                                  n   =   (int)m;  
                                                  n   =   n   +   1;  
                                          }  
                                          axShapeFiles1.CreateShape();  
                                  }  
                          }  
                  }  

 

 

 

 

C#+AE加载shape图层 AE C# shapefile 阅读详情

相关推荐

C#+ArcEngine加载shape、栅格、access、mxd文件

http://wenku.baidu.com/view/8495427558fafab069dc02a3.html这个是百度文库里一篇比较详细的C#,AE打开各种文件的代码。 我没有用//分文件路径,其实也是一样的。一开始不知道ArcEngine简称AE,去搜engine打开各种文件居然都找不到,有一次搜C# 打开各种文件才恍悟。 打开access时总是提示未将对象引用设置到对象的实

MOLLMY的专栏 4639

shp文件与数据库(创建shp文件)

表中的数据到shp文件

qq_63401240的博客 1335

基于C#的AE二次开发之测量点坐标txt数据转Shapefile点数据

基于C#的AE二次开发之测量点坐标txt数据转Shapefile点数据 1、数据准备 2、搭建平台框架 3、代码块 string str_docx = this.textBox1.Textstring[] files = Directory.GetFiles(str_docx, "*.docx").Union(Directory.GetFiles(str_docx, "*.doc")).ToArr...

潇湘公子尹 1883

C#不用ArcEngine,生成Shp文件(三)---------生成.shp格式文件

用上一篇里面 C#不用ArcEngine,生成Shp文件(二)  读取到的.shp文件信息,生成一个一样的.shp文件。测试数据下载地址为:http://download.youkuaiyun.com/detail/gis0911178/9650967 读取到的信息如下:   ----------------------------------------------------------------...

gis0911178的专栏 6143

c#+AE开发:通过一个点(坐标)创建点状图层

  背景:   最近,用c#做二次开发要实现一个功能,即通过鼠标点击创建一个以当前单机点为圆心的缓冲区。要创建缓冲区进行缓冲区分析,则必须要有相应的图层。因此我首先需要通过鼠标点创建一个点状图层添加到图层中去。在网上找到一篇博文《AE 创建shp图层》:http://www.cnblogs.com/jinqier/archive/2013/05/28/3104245.html,这篇...

我是小O 3670

C#+AE实现类似Identify功能

转眼已经到2017年年末,再不发博文就要到下一年了^_^ 这次做的是老师布置的作业,用C#+AE实现类似ArcMap中Identify的功能 最后做出来是用矩形框选择要素,点击treeview中的要素,该要素会在地图上闪烁,但只能对一个图层进行identify。 首先,建立显示属性信息的窗体(identifyform): 窗体identifyform中代码: public p

唯川的博客 2498

AE+ArcGIS二次开发课程设计(基于C#)

AE+ArcGIS二次开发课程设计(基于C#)1.工作内容2.程序功能介绍3.功能模块介绍3.1 实现【创建TIN】说明3.1.1 功能说明3.1.2 代码实现(包含了所有主要的代码,库引用自行导入)3.2 实现【TIN坡度坡向分析】说明3.2.1 功能说明3.2.2 代码实现3.3 实现【自然邻域插值+分级渲染分析】说明3.3.1 功能说明3.3.2 代码实现 1.工作内容 本系统开发需要进行系统环境的配置,在进行工作前安装好VS2010+ArcGIS Engine10.2,能够进行二次开发的环境。

qq_44591181的博客 8870

C# 生成ShapeFile .shp文件

C# 生成ShapeFile 输出 .shp文件的代码,底层原生代码,无需第三方类库支持!

基于C#的AE二次开发如何进行空间查询

基于C#的AE二次开发空间查询 我的开发环境为ArcGIS Engine 10.2与Visual studio2010。如果想进行空间查询,则必须要了解 esriSpatialRelEnum 这个枚举类似的空间关系类,一下是几个比较重要的空间关系。 A的Envelope和B的Envelope相交 esriSpatialRelEnum.esriSpatialRelEnvelopeIntersect...

fungis 2908

利用c#创建shapefile文件

利用c#创建shapefile文件,个人认为很好用的,希望对大家很有帮助

C#版GDAL批量创建点状shapefile文件

利用C#版的GDAL批量将txt种的点转换为shp文件,其中txt文件种要求为四列,第一列为id,第二列为x,第三列为y ,第四列为z

基于AE+C#读取文件及图层输出

  软件是由数据和程序组成,既然做反演系统,那么如何高效且合理的读取数据是一个至关重要的问题。在AE+C#中读取地图数据的代码十分简单,因此此篇分享还加上了将地图文件输出的代码。  还是老规矩,先把相关的引用放上来using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesRaster;   ...

lemon_tttea的博客 1948

解决Thingsboard数据下发难题:自定义RPC请求格式的3种方法(含源码修改指南)

本文详细介绍了解决Thingsboard数据下发难题的3种自定义RPC请求格式方法,包括规则链脚本转换、TB-Gateway中间层转换和源码级定制方案。通过实际案例和性能对比,帮助开发者根据项目需求选择最适合的解决方案,提升物联网平台与设备的兼容性。

weixin_29008691的博客 235

关于使用AE生成SHP文件

只想要代码的,请直接跳到最后 使用AE创建SHP文件的主要接口是通过构建FeatureWorkspace对象进行SHP的生成,如下 IFeatureClass featureClass = IFeatureWorkspace.createFeatureClass( shpName, // 名称,不用带后缀 pFields, // 要素类的字段,其中必须包含Geometry字段...

jav_cn的博客 1421

BCIC IV 2a数据集:从下载到实战应用全解析

本文全面解析了BCI Competition IV 2a(BCIC IV 2a)数据集的应用流程。从官方渠道下载数据、解析其结构,到在MATLAB和Python环境中进行数据导入、预处理(包括处理特殊受试者A04T),并详细演示了从特征提取(如CSP)到分类(如LDA、SVM)的完整实战步骤,为脑机接口研究者提供了从入门到实践的清晰指南。

weixin_28235513的博客 975

大模型驱动时序量化因子自动优化:从WorldQuant回测到实战策略

本文探讨了如何利用大模型驱动时序量化因子的自动优化,构建从创意生成到实战验证的完整流程。通过结合WorldQuant回测平台,搭建自动化流水线,详细拆解了因子生成、回测验证与迭代优化的核心模块。文章分享了从初版实现到进阶优化的实践经验,并指出提示词工程与领域知识注入是关键,旨在实现人机智能协作,提升量化策略研发效率。

wdx012345的博客 804

C#、AE开发入门之打开shp文件并显示

首先要建立好对应的对话框程序,并拖入axMapControl控件和axLisence控件,并设置一个按钮打开该文件 当然在使用前一定要绑定对应的ArcGis产品 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefaul...

aishenyan0793的博客 1264

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1068

AE学习

ae中缓冲区分析后用叠加分析比较好的思路:实现思路分两步,首先要根据线做Buffer,生成一个多边形。用  ITopologicalOperator. Buffer (distance ) ,得到一个Geometry然后使用这个Geometry 做为条件,在需要分析的层进行空间搜索。空间搜索条件可以设为相交,用到 ISpatialFilter接口和 IFeatureClass.Select或Search方法假如分析结果涉及搜索到图形的面积长度,还要将查询结果特征与查询条件做求交运算。会用到ITopologi

小小Giser在成长 3654

Python爬虫实战:东方财富股吧与雪球舆情数据实时爬取与情绪指标挖掘

本文详细介绍如何使用Python爬虫技术实时爬取东方财富股吧和雪球平台的讨论数据,结合股价波动构建情绪分析指标。我们将使用最新的异步爬虫技术、自然语言处理方法和可视化工具,为量化交易提供数据支持。文章包含完整的代码实现和技术细节,适合有一定Python基础的读者学习。

2201_76125261的博客 1224

【Windows Server 2019】企业虚拟专用网络服务的配置和管理(上)

博文介绍了部署企业虚拟专用网的定义,目的,以及好处。同时说明了实验拓扑图以及虚拟专用网络的工作原理。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+
上一篇: C#结构的使用
下一篇: Geoprocessor.Clip(裁剪)
群龙
博客等级 码龄18年 22粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值