点击上方【大水牛测绘】我们
GIS数据来源有很大一部分是AutoCAD传统制图格式,而在某些行业比较普及的软件——南方CASS又占据相当的数量。因此,如何读取它值得探讨。
引言
首先我们了解一下南方CASS特点。它实际是通过对AutoCAD二次开发,将图形属性存放在相应要素的扩展数据(XDATA)中,这部分内容可由命令XDLIST查看。
如果你已经安装并已注册CASS,在图形界面将光标放置在要素上,它会显示如下信息:
而将数据输出至FME Universal Viewer查看属性,如下:
由此,我们可以不难发现,autocad_extended_data{0}.string{0}字段就是我们的要素代码。值得注意的是,autocad_这一前缀是FME添加的,Viewer直接打开数据时默认不显示它。
此外,根据对象的不同,它所附加的扩展信息量也不尽相同。如宗地、图斑、房屋等等,这里不作更详细阐述。但可以明确的是,它们都是按一定规律被组织起来的。
问题
然而,事实上由于图形生产人员水平及作业习惯的不同,或者各地方要求、规范不一致,导致数据特别是扩展信息的存放位置是“浮动”的。
从图中比较可以看出,对于应用名为‘SOUTH’所对应的要素代码autocad_extended_data{*}.string{0}这个顺序号分别是0、1。这是由于通过XDATA命令追加扩展信息,重复执行的不同顺序决定的。
那么,如何获取指定应用名下的信息内容呢?这里用到了表操作类的ListSearcher ListIndexer,即通过搜索属性表中指定应用名(此处为SOUTH)所在位置,进而将它索引出来。当然,假定我以将所需字段手工暴露。如图
这样,就得到了我们所需要的字段值。