1. 谁能帮我打开.MXD的文件格式的 文件 并转换成CAD的
在ARCGIS中,以mxd作为扩展名的文件是地图文档。
是当你用ArcMap编辑一个地图后,它会把当前地图的内片面设置,图层容的符号显示等配置信息存储。
只发mxd是没用的,他只是记录文件的路径、当前的状态。你可以把他理解成一个快捷方式。如果发送过来,没有原始文件(mdb什么的)是打不开的。
1、不要属性的话,在图层上面点右键→数据→导出数据→选择CAD就好了。
2、要属性一般用FME转换。
2. 如何编辑SDE数据
1. 打开 SDE 数据。 SDE 数据一定要使用工作空间工厂去初始化工作空间,在工作空间打开 FeatureClass,这是 最常规的操作。下面通过一段 C#代码连接 SDE,打开并返回一个 IWorkspace。 public IWorkspace FindWsByDefault() { IPropertySet propSet = new PropertySetClass(); propSet.SetProperty("Server", Lan); propSet.SetProperty("Instance", yangyang); propSet.SetProperty("Database", ""); propSet.SetProperty("User", user); propSet.SetProperty("Password", pwd); propSet.SetProperty("Version", version); IWorkspaceFactory factory = new SdeWorkspaceFactoryClass(); IWorkspace workspace = factory.Open(propSet, 0); return workspace; } 通过上述代码打开了 SDE 的工作空间,接下来要做的就是获取要编辑的 FeatureClass。写一 个函数,通过 FeatureClass 的别名和所在的 Dataset 返回 FeatureClass。做法是先遍历所有的 DataSet, 找到符合要求的 Dataset 之后遍历里面的要素, 返回与参与别名一致的 FeatureClass (顺便说一下,FeatureClass 在没有指定别名的时候默认与 FeatureClass 名称相同) //查找指定要素 public IFeatureClass FindClassByName(IWorkspace ws, string className, string dsName) { IEnumDataset enumDs; if (dsName != "") { enumDs = ws.get_Datasets(esriDatasetType.esriDTFeatureDataset); IFeatureDataset featureDs = enumDs.Next() as IFeatureDataset; while (featureDs != null) { if (featureDs.Name == dsName) { return GetFcFromDataset(featureDs, className); } featureDs = enumDs.Next() as IFeatureDataset; } } else { enumDs = ws.get_Datasets(esriDatasetType.esriDTFeatureClass); return GetFcFromEnumDataset(enumDs,className); } return null; } //在数据集中查找要素类 private IFeatureClass GetFcFromDataset(IFeatureDataset featDs, string className) { IFeatureClass featClass; IFeatureClassContainer fcContainer = featDs as IFeatureClassContainer; for (int i = 0; i < fcContainer.ClassCount; i++) { featClass = fcContainer.get_Class(i); if (featClass.AliasName == className) { return featClass; } } return null; } //在要素类集合中查找要素类 private IFeatureClass GetFcFromEnumDataset(IEnumDataset enumDs, string className) { IFeatureClass featClass = enumDs.Next() as IFeatureClass; while (featClass != null) { if (featClass.AliasName == className) { return featClass; } featClass = enumDs.Next() as IFeatureClass; } return null; } //通过要素类名和数据集名在指定的工作空间中寻找要素类 public IFeatureClass FindClassByName(string className, string datasetName) { IWorkspace ws = FindWsByDefault(); IFeatureClass featClass = FindClassByName(ws, className, datasetName); return featClass; } 特别需要留意的是最后一个函数 FindClassByName(,,先是打开 SDE 的工作空间,在这 ) 个工作空间返回符合条件的要素集。通过这样的指向才能对 SDE 的 FeatureClass 进行写入 和删除的操作。 可以把上述代码写成一个静态类, 这样就可以很方便的通过数据集名称和要 数集别名指向要编辑的 FeatureClass 了。 值得一提的是, 很多新手都没有养成这种良好的习惯, 就是先打开工作空间再进行数据的编 辑 ,即便是使用 shp 文件或是 MDB 数据。他们习惯性的使用 MapControl 去加载 MXD 文 件,然后在 MapControl 通过 MapControl.get_layer(index)的方法去获取图层,然后将其转为 IFeatureLayer 或是 IFeatureClass 进行操作。 事实上,MXD 已经不用开发者写一句加载图层的代码就完成了对图层的加载,确实比较方 便。 但是它有很多看不见的操作没有表现出来, 加载完数据之后就把工作空间给自动关闭了。 对于 shp 文件和 MDB 数据,通过读取地图控件的图层是可以直接达到写入的目的,但一旦 有用户进行操作该图层文件就会被锁死,这就是不支持版本技术的表现。而 SDE 数据由于 存在版本(原理不多说了) ,因此有需要去确保数据的安全性和一致性,必须使用工作空间 的形式去打开。如果用读取 MapControl 图层的方法去获取 FeatureClass,实际上获取的是一 个没有打开的编辑操作的 FeatureClass,在 ESRI 的帮助文档里面我们不难发现它是只读的, 就像在 ArcMap 里面没有用 Editor 执行 startEdit 一样。 2. 编辑 SDE 数据 利用上述的方法获取了 FeatureClass 后就可以用常规的方式对其进行编辑,如 delete()和 CreateFeature(),或是更改属性值。但是仍然会出现无法编辑数据的现象,这种现象通常提 示没有足够的授权去编辑数据,这就涉及到 AE 对 SDE 数据编辑的授权,也就是 gdbedite 的授权(主要是在 AE9.2 里面) 。 关于 GDBEdite 的授权,懒羊羊已经在之前发过一份比较完整的文档,但还是在这里再归纳 一下。 ArcEngine9.2 在用户许可上做了很大的改动,应用程序是强制初始化许可,也就是说必须使 用 LicenseControl 或 AO 接口初始化许可, 否则应用程序无法启动。 Engine9.1 未采取强制初 始化许可策略,而是应用程序创建时就初始化标准 Engine 许可。在一般情况下,我们会用 将 LicenseControl 拖放到主窗体上完成初始化。但当 Engine 程序需要使用 ArcGIS Engine Enterprise Geodatabase(以下简称 GDB Update)许可的时候,我们就往往会由于意识不到应 该使用该许可,以及无法正确的初始化该许可而陷入麻烦。 对于许可这东西,首先要学会看软件产品的购货单。下表是一份关于 ArcEngine9.2 的购货 单。 下面对 GDB update 许可进行讨论 1. 什么情况下需要 GDB Update 许可 当需要对 SDE 里数据进行编辑时,以及需要在 SDE 和 Personal Geodatabase 中创建复杂 ArcGIS 对象时,需要使用 GDB Update 许可。 对 SDE 里的数据编辑,很好理解,大致就是进行数据插入,删除,更新;对表添加、删除 和修改,表结构的变化(添加、删除列)等,因为这些动作都会造成后台数据库的写操作。 对于 Personal Geodatabase,进行简单数据对象和编辑,包括创建、删除和修改普通表都是不 需要 GDB Update 许可的, 但对于复杂的 Geodatabse 对象的创建、 删除和修改, 则需要 GDB Update 许可,其中复杂的 Geodatabse 对象包括几何网络,网络分析模型,拓扑,关系类。 这也是为什么往往有写好了一个创建几何网络或拓扑的程序后,执行起来会被报“需要 Geodatabase Update 许可”的错。 2. 怎样初始化 GDB Update 许可 当我们意识到需要使用 Engine 的 GDB Update 许可时,怎样才能将它正确的初始化呢? Engine 给我们提供了两种初始化许可的方法: 1) 使用 LicenseControl 控件。将该控件拖放到主窗体之上,勾选适当的许可,并确保 程序启动该窗体可加载,就可以完成许可初始化。如下图: 2) 使用 IAoInitialize.Initialize 方法加入适当的参数进行初始化 下面是 C#的代码 private IAoInitialize m_AoInitialize = new AoInitializeClass(); private void Form1_Load(object sender, EventArgs e) { m_AoInitialize.Initialize(esriLicenseProctCode.esriLicenseProctCo deEngineGeoDB); } 在窗体加载的时候初始化 GDB 许可。 当然, 对于一个健壮的程序而言, 我们还需要在初始化之前先判断将被初始化的许可是否可 用,应先使用 IsProctCodeAvailable 方法进行判断,需要初始化扩展模块的许可,可使用 CheckOutExtension 方法。
3. 25个arcmap常用各种文件扩展名,你都知道吗
本文详细介绍了26个ArcGIS中常用的各种文件扩展名,以下是它们的具体用途:
1. .sde:ArcSDE连接文件的扩展名。
2. .tlb:用于.Net开发ArcGIS插件的文件扩展名,有版本兼容性问题。
3. esriaddin:ArcGIS插件开发的扩展名。
4. .rul:ArcGIS拓扑规则文件,用于加载拓扑规则。
5. .exp:保存查询SQL的扩展名,便于下次直接使用。
6. .lxp:标注表达式保存扩展名,支持下次直接加载。
7. .gtf:不同坐标系转换参数文件。
8. .shp:Shapefile文件扩展名,不建议当前使用。
9. .mxd:ArcMap文档文件,存储文档布局、图层样式、标注等信息。
10. .lyr:图层样式文件,存储图层属性设置。
11. .mxt:ArcGIS制图模板文件,包含初始化界面配置。
12. .prj:存储坐标系信息的文件。
13. .mdb:个人数据库文件,支持Access打开,有版本兼容性问题。
14. .gdb:文件地理数据库,与mdb相似,同样有版本兼容性。
15. .sqlite:轻型数据库文件,支持Android设备。
16. Geodatabase:本地离线数据库文件,矢量格式可编辑。
17. .tbx:ArcGIS工具箱文件,有版本兼容性问题。
18. .tpk:ArcMap地图切片包文件。
19. .mpk:地图包文件,包含数据与mxd文档,支持ArcGIS 10.0以上。
20. .gpk:地理处理包文件,包含工具或模型和数据,可解包后使用。
21. .img:遥感影像文件格式,ERDAS和ENVI软件常用。
22. .las:存储机载激光雷达数据的二进制格式文件。
23. .sxd:ArcSence文档文件,需要保存为相对路径。
24. .3dd:ArcGlobe文档文件,需要保存为相对路径。
25. .py:ArcGIS Python源码文件。
26. .xyz:存储激光点云数据的浮点数格式文件,可生成ArcGIS数据。
以上信息旨在帮助用户了解并运用ArcGIS中的文件扩展名,共同提升技能。
4. arcgis如何合并1:10000分幅地形图mdb格式数据库
有多种方式:
1、直接在抄mxd文件中添加分幅的地形图,然后发布服务,这样看上去是合并的了
2、新建一个MDB数据库,然后将数据按图层分别合并到一个图层里
地形图合并的关键在于是否要接边,如果接边的话工作量就很大了
5. 现有cad的DWG地形图,怎么转成shp文件
1、首先,打开抄ArcMap,加载CAD文件,可袭以全部添加,也可以单独添加每个元素;这里添加的都是一个组合,你也可以打开它(取消组合)。