当前位置: 首页 > news >正文

做面包有关电影网站/长沙网站优化排名推广

做面包有关电影网站,长沙网站优化排名推广,免费网站建设培训班,朝阳网络公司怎么样说明:此部分内容或资料大部分来至网上收集所得,以前放在自己电脑上,具体也不知道出处了!总结出来分享给需要的人,因为正好介绍的项目开发(如题)用到其中的一些知识。因为项目中已经支持ArcSDE、…

     说明:此部分内容或资料大部分来至网上收集所得,以前放在自己电脑上,具体也不知道出处了!总结出来分享给需要的人,因为正好介绍的项目开发(如题)用到其中的一些知识。因为项目中已经支持ArcSDE、Shape和RDMBS(基于Oracle10g)之间的相互转换,后面介绍空间数据管理有这个功能模块,如果你想实现更多中GIS数据格式之间的相互转换,下面的内容提供很好的一个帮助和支持。

0.介绍

    数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提。ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异。本文主要介绍一下以下八种数据格式在ArcGIS Engine中如何访问。对ArcGIS桌面应用有一定了解的读者更适合阅读本文。本文的示例代码是用C#编写。
(1)Shapefile
(2)Coverage
(3)Personal Geodatabase
(4)Enterprise Geodatabase
(5)Tin
(6)Raster
(7)CAD
(8)RDBMS
     在通过ArcGIS访问数据之前,需要首先明确一下什么是"工作空间"。在ArcGIS中工作空间指存放数据的位置,ArcGIS访问数据的机制是先打开数据对应的工作空间,然后用工作空间访问数据。对于不同的数据格式,工作空间的具体情况也是不一样的,下面分别进行阐述。


1.Shapefile


     Shapefile是文件型的空间数据格式,以文件的形式在磁盘上进行存储空间数据和属性数据。下面的示例代码是打开位于D:\Data文件夹下的文件名为Cities的Shapefile要素类。对于Shapefile来说工作空间就是它所在的文件夹, 打开工作空间需要使用对应的工作空间工厂,即ShapefileWorkspaceFactoryClass,然后再调用IWorkspaceFactory的OpenFromFile方法就可以得到一个工作空间了,这也是设计模式中工厂方法的体现。工作空间工厂的打开方法返回的是一般意义的工作空间,根据具体数据还需要进行接口转换,因为Shapefile是矢量数据,所以把工作空间接口跳转到IFeatureWorkspace,从而读取其中的要素类,这一点对于接下来的几个数据格式也是同样的打开方式。

IWorkspaceFactory pWorkspaceFactory; pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); IFeatureWorkspace pFeatWS; pFeatWS = pWorkspaceFactory.OpenFromFile(@"D:\Data\", 0) as IFeatureWorkspace; //打开一个要素类 IFeatureClass pFeatureClass = pFeatWS.OpenFeatureClass("Cities");


2.Coverage


     Coverage是ArcInfo workstation的原生数据格式。该格式是基于文件夹存储的,是因为在windows资源管理器下,它的空间信息和属性信息是分别存放在两个文件夹里。coverage是一个非常成功的早期地理数据模型,二十多年来深受用户欢迎,很多早期的数据都是coverage格式的。ESRI不公开coverage的数据格式,但是提供了coverage格式转换的一个交换文件(interchange file,即E00),并公开数据格式。但是ESRI为推广其第三代数据模型geodatabase,从ArcGIS 8.3版本开始,屏蔽了对coverage的编辑功能。如果需要使用coverage格式的数据,可以安装ArcInfoworkstation,或者将coverage数据转换为其他可编辑的数据格式。Coverage是一个集合,它可以包含一个或多个要素类。 Coverage数据的工作空间也是它所在的文件夹;由于Coverage可以包含多个要素类,得到工作空间后在打开具体的要素类时可以用"Coverage名称:要素类名称",例如下面代码中的"basin:polygon"。

IWorkspaceFactory pFactory = new ArcInfoWorkspaceFactoryClass(); IWorkspace pWorkspace = pFactory.OpenFromFile(@"D:\ArcTutor\TopologyData", 0); IFeatureWorkspace pFeatWorkspace = pWorkspace as IFeatureWorkspace; IFeatureClass pFeatureClass = pFeatWorkspace.OpenFeatureClass("basin:polygon");


3.Personal Geodatabase


     Geodatabase作为ArcGIS的原生数据格式,体现了很多第三代地理数据模型的优势。Personal Geodatabase基于Microsoft Access一体化存储空间数据和属性数据。Enterprise Geodatabase通过大型关系数据库+ArcSDE实现,ArcSDE作为中间件把关系数据库中的普通表转化为空间对象。Personal Geodatabase数据的工作空间指的是扩展名为mdb的文件。以下是打开位于Monto.mdb中的Water要素类的代码。

IWorkspaceFactory pFactory = new AccessWorkspaceFactoryClass(); IWorkspace pWorkspace = pFactory.OpenFromFile(@"D:\ArcTutor\Monto.mdb", 0); IFeatureWorkspace pFeatWorkspace = pWorkspace as IFeatureWorkspace; IFeatureClass pFeatureClass = pFeatWorkspace.OpenFeatureClass("Water")


4.Enterprise Geodatabase

     ArcSDE(Enterprise Geodatabase)对应的工作空间为数据库连接,关系数据库是Oracle时连接参数需要五个,分别是SERVER、INSTANCE、USER、PASSWORD、VERSION。SERVER指服务器的主机名,INSTANCE指服务名或端口号,USER是数据库的用户名,PASSWORD数据库对应用户的密码,VERSION指Enterprise Geodatabase多版本机制中的某个版本,默认的一个版本是"SDE.DEFAULT",如果关系数据库是SQL Server,那么连接参数还需要Database参数。下面是打开Enterprise Geodatabase中ControlPoint点要素类的代码,关系数据库为Oracle9i。

IWorkspaceFactory pWorkspaceFactory = new SdeWorkspaceFactoryClass(); IPropertySet propSet = new PropertySetClass();propSet.SetProperty("SERVER", "actc"); propSet.SetProperty("INSTANCE", "5151");propSet.SetProperty("USER", "apdm"); propSet.SetProperty("PASSWORD", "apdm");propSet.SetProperty("VERSION", "SDE.DEFAULT"); IWorkspace pWorkspace = pWorkspaceFactory.Open(propSet, 0); IFeatureWorkspace pFeatWS = pWorkspace as IFeatureWorkspace; IFeatureClass pFeatureClass= pFeatWS.OpenFeatureClass("ControlPoint");


5.TIN


     TIN全称不规则三角网,也叫不规则三角表面,采用一系列不规则的三角点来建立表面。例如,每一个采样点有一对x,y坐标和一个表面值(z值),这些点被一组互不重叠的三角形的边所连接,从而构成一个表面。TIN数据是空间分析和三维分析重要的数据格式,以文件的形式在磁盘上存储。TIN的工作空间是所在的文件夹,下面代码是打开D:\ArcTutor\3DAnalyst文件夹下名称为mal的TIN。

IWorkspaceFactory pWSFact = new TinWorkspaceFactoryClass(); IWorkspace pWS = pWSFact.OpenFromFile(@"D:\ArcTutor\3DAnalyst\", 0); ITinWorkspace pTinWS = pWS as ITinWorkspace;ITin pTin = pTinWS.OpenTin("mal");


6.Raster


     栅格数据也是GIS数据中很重要的一部分,ArcGIS中最常用的文件型有GRID、TIFF、ERDAS IMAGE等,这几种栅格数据的工作空间也是所在的文件夹。打开栅格数据时需要使用栅格工作空间工厂(RasterWorkspaceFactory),然后再使用IRasterWorkspace接口的打开栅格数据集方法即可打开一个栅格数据集。在打开栅格数据集时,如果数据格式为是ESRI GRID,那么OpenRasterDataset()方法的参数为栅格要素集的名称,如果数据格式为TIFF格式,那么该方法的参数为完整的文件名,即要加上.tif扩展名,例如OpenRasterDataset("hillshade.tif")。下面代码为打开GRID格式的栅格数据。

IWorkspaceFactory rasterWorkspaceFactory = new RasterWorkspaceFactoryClass(); IRasterWorkspace rasterWorkspace = rasterWorkspaceFactory.OpenFromFile(@"D:\data\grid", 0) as IRasterWorkspace; IRasterDataset rasterDataset= rasterWorkspace.OpenRasterDataset("ca_hillshade");


7.CAD


     CAD数据也可以通过AO直接访问,访问CAD数据的方式与Coverage类似,但是注意要使用CAD的工作空间工厂,以下是打开一个dxf的CAD数据,在打开要素类时使用"cad文件名:要素类名称" , 注意cad 文件名要包含扩展名, 否则会报错。以下代码是打开位于D:\ArcTutor\Editor\ExerciseData\EditingFeatures文件夹下的buildings.dxf中的多边形要素类。

IWorkspaceFactory pCadwf = new CadWorkspaceFactoryClass(); IWorkspace pWS = pCadwf.OpenFromFile(@"D:\ArcTutor\Editor\ExerciseData\EditingFeatures", 0); IFeatureWorkspace pCadFWS = pWS as IFeatureWorkspace; IFeatureClass pFeatClass = pCadFWS.OpenFeatureClass("buildings.dxf:polygon");


 

8.RDBMS


    一般关系表中的数据也可以通过ArcGIS直接读取,这为数据的共享提供了极大的便利,对于一些业务上的非空间数据,通过使用OLE方式可以很方便的实现数据访问,业务数据可以位于各种关系数据库中,以下代码是访问位于Microsoft Access中的Custom表,当然也可以访问Oralce或SQL Server中的数据,只要变化以下连接字符串(CONNECTSTRING)就可以了。


 

//创建一个连接 IPropertySet pPropset;pPropset = new PropertySetClass(); pPropset.SetProperty("CONNECTSTRING", @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Company.mdb;Persist Security Info=False"); //创建一个新的OleDB工作空间并打开 IWorkspaceFactory pWorkspaceFact; IFeatureWorkspace pFeatWorkspace; pWorkspaceFact = new OLEDBWorkspaceFactoryClass(); pFeatWorkspace = pWorkspaceFact.Open(pPropset, 0) as IFeatureWorkspace; ITable pTTable = pFeatWorkspace.OpenTable("Custom");


总结

     以上为ArcGIS最常用的几种数据的访问方法,访问数据进行GIS分析、数据处理和空间可视化的,在获取到数据以后可以把数据加到图层里,也可以对数据进行检索或维护等工作。

转载于:https://www.cnblogs.com/brucewoo/archive/2011/11/23/2262498.html

http://www.lbrq.cn/news/782407.html

相关文章:

  • 做游戏的网站/合肥网络seo推广服务
  • 联盟网站制作/专业网站推广软件
  • 做网站聊城/长沙百度seo
  • 建设部科技中心网站/文军seo
  • 尤溪县建设局网站/自己怎么制作一个网站
  • 网站建设好处/怎么做个网站
  • 威海做网站公司/唐山seo推广公司
  • 网站建设基本目标/企业seo网络推广
  • 用h5做的网站/2024年重大新闻摘抄
  • 网站建设 要维护么/网站建设方案模板
  • 家装设计网站开发/男生最喜欢的浏览器推荐
  • 赚钱黑渠道入口/网站推广seo是什么
  • 做网站周记/百度电商推广
  • 自适应网站建设模板/互联网推广员是做什么
  • 河北做it的网站/新闻头条最新消息10条
  • 常州网站建设最易/上海谷歌推广
  • 宁波网站设计推广服务公司/网络营销师培训
  • 最新上市新手机/seo优化培训班
  • 免费做图片链接网站/抓取关键词的软件
  • 廊坊哪里有做网站建设的/百度关键词排名原理
  • 域名购买哪个网站/免费网络空间搜索引擎
  • 企业网站制作模板免费下载/杭州龙席网络seo
  • 佛山网站建设永网/百度推广运营工作是什么
  • 在线客服系统报价/宁波seo快速优化
  • 网站充值如何做post的/成都百度推广联系方式
  • 福州搜索优化实力/做网站关键词优化的公司
  • 电子商务网站开发应遵循的基本原则/seo营销是什么意思
  • 石龙镇网站建设/福州seo
  • html5公司网站源码/祁阳seo
  • 制作网站报价单/广告咨询
  • Javaweb - 14.1 - 前端工程化
  • TyDi QA:面向语言类型多样性的信息检索问答基准
  • Redis数据组织方式
  • 二、k8s 1.29 之 网络
  • OpenCV 入门教程:开启计算机视觉之旅
  • MyBatis-Plus Service 接口:如何在 MyBatis-Plus 中实现业务逻辑层??