樱木 原文 IWorkSpace与IWorkSpaceFactory与IWorkSpaceEdit 1.IWorkSpace是一个容器,里面存放着各种空间数据和非空间数据,比如Featureclass.RasterDatasets.tables等等,它分为三种:FileSystemWorkspace,LocalDatabaseWorkspace,RemoteDatabaseWorkspace,比如Shapefile是一种FileSystemWorkspace,ACCESS和文件形式的GDB是Lo…
一.SDE要素导出到shapefile中. 1.创建一个新的shapefile文件. private bool CreateShapefile(string filepath, string name) { bool isSuccssed = false; try { IFeatureWorkspace pFWS = null; IWorkspaceFactory pWSF = new ShapefileWorkspaceFactoryClass(); pFWS = pWSF.OpenFromF…
原文地址:http://hi.baidu.com/steeeeps/item/165fbc15475e94741009b5b3 非常感谢作者. 以前学习几何网络时,对效用网络流向进行了总结,原理与效果图见:http://hi.baidu.com/llinkin_park/blog/item/7f18fff9e87cf075034f56d8.html 但是代码一直没贴出来,因为网上有很多类似的代码,这几天一个网友想交流一下,自己也好久没看这个代码了,在这里把显示流向的代码贴出来分享下,如果你有更好…
Shapefile文件是ArcGIS存储矢量要素的标准格式,要读写Shapefile最简单的方法当然是基于ArcObject(或者ArcEngine)开发,不过网上也有一些开源的解译Shapefile的代码都是值得参考的,lz曾经用到过一个,源码已经贴到下边,有兴趣的可以下载看看(来源已经记不清了,如果这是您的代码请联系我),下边是两种方法的代码,其实代码很简单,但由于经常会用到所以记下来以便日后查阅.直接上代码. 打开Shapefile: public static IFeatureClass…
/* * 实习课上讲进阶功能所用文档,因为赶时间从网上抄抄改改,凑合能用,记录一下以备个人后用. * * ------------------------------------------------------------------- * * 使用前提:已搭建好AE的GIS基本框架,包括TOC.mapcontrol.toolbar拖控件,mxd.shp文件载入显示,查看图层属性表等 * * --------------------------------------------------…
/// <summary> /// 打断线,用于在点击点处,打断该条线 /// </summary> /// <param name="t_pLineFeatureClass">线图层</param> /// <param name="t_pPoint">点击的点</param> public static void SplitePolylineByHitPoint(IFeatureClass…
转自原文 ArcGIS Engine 编辑- IWorkspaceEdit 这个例子中,我创建了1000条要素,并结合缓冲将数据写到文件中,并且添加了时间统计,当然数据是我捏造的,还请原谅,这个花费的时间为0.978秒,速度还行. IWorkspaceFactory pWsF = new ShapefileWorkspaceFactory(); IFeatureWorkspace pFtWs = pWsF.OpenFromFile(@"E:\arcgis\Engine\数据", 0)…
数据编辑做过很多次,没怎么出现问题,今天出现了问题,浪费了大半天,记录一下. 问题:修改Featrue的属性,修改后停止编辑,但是没有提示是否保存修改 原因:在编辑数据的时候没有加StartEditOperation方法. 解决办法:在修改数据的时候加上StartEditOperation和StopEditOperation方法 代码如下: 1.打开工作空间和开始编辑 ''' <summary> ''' 开始编辑VB ''' </summary> ''' <remarks&g…
 );             ESRI.ArcGIS.esriSystem.IName name = (ESRI.ArcGIS.esriSystem.IName)workspaceName;             IWorkspace copyWorkspace = (IWorkspace)name.Open();…
IWorkspace接口提供访问工作空间的通用属性和方法,如它的连接属性,以及包含的数据集的方法. IWorkspace的成员字段: Members   Description ConnectionProperties The connection properties of the workspace. DatasetNames The DatasetNames in the workspace. Datasets The datasets in the workspace. ExecuteS…
工作空间工厂(WorkspaceFactory)是工作空间的发布者,允许客户连接通过一组连接属性定义的工作空间. 工作空间表达了一个包含一个或多个数据集的数据库或数据源,数据集可以是表.特征类.关系类.连接属性用PropertySet对象定义,可以保存到链接文件中. 下表描述了IWorkspaceFactory成员的一些方法和属性. 下表描述了IWorkspaceFactory继承的类. 在工作空间工厂组件中,利用接口IWorkspaceFactory可以指向一个工作空间工厂对象. 每个工作空间…
转自原文 IEngineEditor与IWorkspaceEdit,以及相关的事件监听 IEngineEditor适用于直接在图层上的编辑,例如使用"要素编辑"工具菜单上的"开始编辑"等工具进行编辑,相应的事件使用IWorkspaceEdit监听,例如以下的代码: private IEngineEditor m_EngineEditor = new EngineEditorClass(); private IEngineEditEvents_Event m_Engi…
When To Use Use IWorkspaceFactory when you need to create a new workspace, connect to an existing workspace or find information about a workspace. Members   All Properties Methods Description ContainsWorkspace Indicates if parentDirectory contains a…
IWorkspace接口提供访问工作空间的通用属性和方法,如它的连接属性,以及包含的数据集的方法. 如何打开一个数据库  要打开一个数据库,也就意味着我们要得到那个工作空间,而工作空间是一个普通类,也就意味着我们只能从其他类来得到这个工作空间,这个类就是工作空间工厂(WorkspaceFactory),而这个类又是一个抽象类,也就意味着我们只能使用它的子类来实例化一个对象,WorkspaceFactory有众多的子类,我们可以从OMD图中获得.…
IWorkspace pWsI = ((IDataset)pFtCls).Workspace 查询通配符 ISQLSyntax psqls = (ISQLSyntax)(((IDataset)pFtCls).Workspace); string mulitstr = psqls.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_WildcardManyMatch);…
在批量保存Feature至本地mdb的时候,当Feature的数量超过一定的值(该值不确定是不是Access文件的MaxLocksPerFile值,因为当MaxLocksPerFile为9500时,Feature数量为几万仍然不出现该异常),会出现文件共享锁定数溢出错误. 参考网上的解决办法: 修改注册表 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Jet4.0]   "MaxLocksPerFile"=dword:05…
1.通过某个WorkspaceFactoryClass(例如AccessWorkspaceFactoryClass)拿到工作空间工厂接口,这时的OpenFromFile方法可以直接打开mdb类型文件,作为工作空间.如果是ShapefileWorkspaceFactoryClass,则直接打开shp文件所在的文件夹. 2.IEnumDataset 接口直接获取工作空间的数据集,然后迭代拿到要素集(可根据别名). 3.可以用IMap接口先调用SelectByShape方法,之后使用Map.Featu…
原因:未添加License. 解决办法:在窗体中添加LicenseControl即可.如下图,License图标运行时不会显示.…
解决办法: 在Program.cs的Main函数中添加如下代码: ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);…
原文:ArcGIS Engine开发之旅04---ARCGIS接口详细说明 ArcGIS接口详细说明... 1 1.      IField接口(esriGeoDatabase)... 2 2.      IFieldEdit接口(esriGeoDatabase)... 2 3.      IFields接口(esriGeoDatabase)... 2 4. IRow接口(esriGeoDatabase)... 3 5. ITable接口(esriGeoDatabase)... 3 6. IAr…
当我们在webgis 想要把某个地块或者多个地块导出dwg或者shp文件的时候怎么办?这个时候最好就是用后台的方式.首先把web gis上的graphic 的polygon提取为坐标的形式(类似于x,y x,y x,y),如果这个图形你知道在某个sde库的,也可以提取它的主键属性信息,方便在后台直接查询,减少坐标传输,地块特别大的很麻烦.后台首先要把坐标存到一个内存的featureclass //创建内存图层 private IFeatureClass createMemoryFeatureCl…
ArcGIS接口详细说明 目录 ArcGIS接口详细说明... 1 1.      IField接口(esriGeoDatabase)... 2 2.      IFieldEdit接口(esriGeoDatabase)... 2 3.      IFields接口(esriGeoDatabase)... 2 4. IRow接口(esriGeoDatabase)... 3 5. ITable接口(esriGeoDatabase)... 3 6. IArea接口(esriGeometry)...…
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Dat…
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Con…
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)//导出为shape文件. { string serror = ""; for (int i = 0; i < sFeature.Count; i++) { IFeature pFeature = sFeature[i]; IFeatureClass pSourceFeaCls = pFeatu…
ArcObjects 类库(一) --------------------------------------------------------------------------------------------------------- ●·● 目录: O0 ………… 在线帮助 & 本地帮助 OMD(对象模型图) Geodatabase 命名空间 A1 ………… IWorkspaceFactory 接口A2 ………… IWorkspace 接口 IFeatureWorkspace 接口…
using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF; using ESRI.ArcGIS.ADF.BaseClasses; using ESRI.ArcGIS.ADF.CATIDs; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.GlobeCore; using ESRI.ArcGIS.Carto; using…
转自wbaolong原文 ArcEngine控制台应用程序 控制台应用程序相比其他应用程序,更加简单,简化了许多冗余,可以让我们更加关注于本质的东西. 现在让我们看一看ArcGIS Engine的控制台应用程序吧! 一.首先是许可绑定:   1.运行时环境的绑定 ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); 2.AO的许可级别 IAoInitialize aoInitialize = new A…
转自原文ArcEngine 数据导入经验(转载) (一) GIS系统数据是基础,想必大家在做ArcEngine二次开发的过程中都会遇到向MDB和SDE写入数据的工作,我们将会通过几个篇幅,从大数据量导入过程中的问题和解决方式入手带给大家一些实用的经验. 1.数据的写入和删除要使用IWorkspaceEdit.StartEditing来开启一个编辑流程,千万别草率的写入和删除.使用该接口,如果数据在处理过程中出现任何异常,可以不对操作结果进行保存编辑和结束编辑IWorkspaceEdit.Stop…
ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据的存储和管理,它将不同的数据统一纳入Access文件中,便于数据的管理与迁移,容量限制为2GB.个人地理数据库支持单用户编辑,不支持版本管理.在进行ArcGIS软件操作和开发的学习过程中,一般建议采用个人地理数据库进行数据的 组织和存储,同时也便于直接导到ArcSDE空间数据库中.加载个人地理数据库…