问题:
1) 项目应用中要求将CAD规划成果合理的入库GIS SDE中,在建立一套比较规范的标准为前提下,如何“低技术、傻瓜式”实现规划数据更新管理、版本化是个迫切难题。
2) CAD作为数据源,不同于其他直接以GIS作为数据源,有一个转换过程,转换存在语义、元数据、模式等相关方面问题,势必会造成数据一定程度的丢失、损坏,如何最低限度降低这种损坏同时合理的进行数据转换也是需要考虑的。
3) 项目运用追求产品化,建立CS桌面模式的一对一还是建立BS网络模式的一对多,根本上还是以需求为指导,那么如何将转换过程是以桌面方式还是以服务方式进行尚需考虑。
分析:
FME作为转换利器,可直接写脚本,可直接写插件,可二次开发,可发布服务,所有都以FME Engine为核心,体现在FME Desktop和FME Server上。
【其1】
FME Desktop开发有2种:FMEObjects和FMEPlugin,结构:
图1 FME Desktop软件结构
1) FME Objects基本支持各种常用开发语言,开发的软件工具必须要在FME Runtime下才能运行,就是说要安装FME Desktop才能运行。
2) FME Plugin可自定义扩展新的格式和转换器,如可开发自己一种扩展名为“.yzz”格式并设置对应的数据转换,开发函数类似于FME的上百种转换函数。
此形式开发需要开发人员需要一定的编程经验,而且也不是3-5天就可以做的出,根据不同应用对应着不同的目标结构,可能随时需要修改相关参数,难度大,任务重。
【其2】
发布服务也分2类:FME Server和FME托管Amazon的云服务
FME Server是用于网络的转换器,可以将开发的FME脚本发布称REST服务,为基于FME Workpace(模型)的调用。 使用FME Workbench建模并保存为模型文件,或者发布为一个基于Web的服务,应用系统对模型文件或服务的调用类似对一个管道进行操作,需要关心的只是输入和输出。
图2 FME建模实施过程
此种只需开发人员协调,以实施人员为主体,当服务发布制定后,第三方人员根据服务进行在线数据转换、提取、下载,可实时进行数据同步更新。
FME云服务作为最新一种,以亚马逊为平台,提供PAAS,意指:将FMEServer部署在云环境中,其他措施和FMEServer一样,收费甚少。
解决探讨:
1) FMEObject C#开发,基于单机扩展,可灵活控制转换过程与步骤,也可执行脚本转换,但开发周期长,灵活性较差,没有通用性。
2) FMEPlugin,只支持C++和Java,扩展难度极大,但针对某个特定项扩展成功则类似于使用某种软件成品,一般无特殊要求不推荐。
3) FME脚本发布服务,由开发人员或技术支持、实施人员进行脚本开发,制作待需特定脚本,将其发布到FMEServer中,客户只需输入输出即可,无需关心转换过程,要求授权FMEServer和熟练FME服务使用。(详细待续)
总结
CAD规划成果转换入库GIS SDE,小批量可由开发人员或实施人员进行手动转换,但随着应用展开和项目需求,有自动化软件工具有必然性。FME脚本制作一定程度上依赖对CAD数据的把握和目标数据的需求,同时对转换经验和熟练也有一定要求,合理的做到快捷、损坏少、便于管理,个人意见:开发人员根据规范开发FME脚本,对数据更新、管理、同步版本化进行相关测试,而后通过FMEServer发布脚本,在局域网或互联网公开服务地址,在应用不断积累中完善服务性能,客户最终使用服务完成数据转换。
说明:总结分析仅供参考,详细设计以实际锻炼为主。
参考:
[1] FME2011帮助文档;
[2] 安图163官方博客;