ArcGIS|FGDB API介绍(译)

0
分享 2016-06-06
下载链接,内含示例代码和帮助文档:
http://www.esri.com/apps/products/download/index.cfm?fuseaction=download.main&downloadid=1625
预备知识:必须使用FGDB的五个理由
GIS已经有太多的数据格式了,从ArcGIS 9.2(大约2006年)开始又多了一种--File Geodatabase。当然,每种格式都有优点和缺点,看看这些亮点能否打动你:
  1. 容量:这种数据库的容量仅取决于磁盘空间,默认情况下,单个表或要素类最大1TB,使用指定关键字可以扩展到256TB。
  2. 跨平台:可用于Windows 和UNIX (包括Solaris和Linux)
  3. 速度:具有卓越的性能和伸缩性。例如,单表超过3亿条要素记录,容量超过500GB仍能保持非常好的性能。通过高效的数据结构,FGDB超越了Shapefile和PGDB对于属性和容量的限制,几何的存储大小仅有它们的三分之一。
  4. 编辑模式:FGDB使用了与Shapefile类似的多人读取单人编辑的模式,每个独立的要素类,表和要素数据集可以同时被多人编辑,但任意时刻每个对象只能有一个编辑者。也就是说,用户A在编辑道路数据时,用户B可以同时编辑地块数据(但不能编辑道路)。
  5. 压缩:用户可以将FGDB压缩成只读模式,进一步压缩存储空间,而不降低性能。(基本可以替代.sdc格式)


File Geodatabase API详细介绍
2011年1月FGDB API将会发布测试版,这里预先公布其中的一些细节:它基于C++提供了一种非AO的方式使用FGDB,可以执行如下的这些任务:
  1. 创建,打开,删除FGDB;
  2. 读取GDB结构和其中所有对象的结构;
  3. 创建简单的对象,包括:表,点、线、面要素类,要素数据集,域和子类;
  4. 读取GDB中所有数据集的内容,包括关系类;
  5. 插入,更新,删除简单数据集中的内容,包括:表,点、线、面、多点、多面体要素类,可以使用附件;
  6. 执行属性查询,空间查询只支持范围相交查询。


FGDB API为高级开发者提供了一种不使用ArcObjects(AO需要商业许可)即可访问FGDB的方案,它的目的是在非ESRI的应用中,也可以浏览和编辑FGDB数据,进行数据交换(互操作)。这个API基于C++提供了直接访问FGDB文件的底层I/O模块,开发者可以创建新gdb,创建简单要素类,读写数据,执行属性和部分空间查询。但它不能取代AO,AO仍然是访问GDB的推荐方法。
FGDB API是针对ArcGIS 10简化后的GDB系统表开发的,因此只适用于10或更高的GDB版本。我们计划将API做成一个单独下载的ZIP包,包含:C++类库(dll,lib,.h)和html格式的API文档(当前版本仅支持windows)

API的限制
虽然FGDB API能够访问复杂类型的GDB数据对象,但在增删改这些数据类型时并不能遵循GDB的行为(意思就是不能编辑),有:注记和标尺要素类,关系类,网络(包含几何网络和网络数据集),拓扑数据集,地形数据集,制图表达,宗地数据集。API不会阻止用户的编辑,开发者有责任避免编辑这些有GDB行为的数据。Table.IsEditable方法可以帮助开发者判断一个数据集是否能被安全的编辑。当前版本还有一些限制:暂不支持栅格格式(包括栅格数据集,栅格目录,镶嵌数据集和栅格属性);空间查询仅支持范围相交操作。
 
FGDB API 1.0正式发布
(2011年6月)FGDB API终于结束测试,1.0版开放下载。从资源中心下载的速度要比以前快些。正如之前许诺的一样,这个API可用于64位Linux,另外比之前的测试版又有些更新:
  1. 下载包中包含了Xsd,可以用来验证xml
  2. 增加了一个新的示例程序,Topologies,它用libXml输出了包含要素类名称的拓扑规则列表。这个示例展示了如何组合使用API和xml工具导出FGDB中的数据结构。
  3. 现在仅用WKID和WKT字符串就能创建空间参考对象,其他参数都是可选项。sampleXML示例中给出了定义空间参考最简单和最全面的两种方法。
  4. 现在GetDescription的返回结果可以用来创建表,之前的xml结果内容和顺序都没考虑到创建表的需要。
  5. IsEditable函数更加准确,不可编辑的内容在Insert和Update的过程中不会被改动。

 文章来源:http://www.jianshu.com/p/c82fc791cffe

0 个评论

要回复文章请先登录注册