fme server api开发示例

上传人:第*** 文档编号:32819446 上传时间:2018-02-12 格式:DOC 页数:15 大小:374.50KB
返回 下载 相关 举报
fme server api开发示例_第1页
第1页 / 共15页
fme server api开发示例_第2页
第2页 / 共15页
fme server api开发示例_第3页
第3页 / 共15页
fme server api开发示例_第4页
第4页 / 共15页
fme server api开发示例_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《fme server api开发示例》由会员分享,可在线阅读,更多相关《fme server api开发示例(15页珍藏版)》请在金锄头文库上搜索。

1、FME Server API 开发示例内容 介绍 Introduction 使用服务器会话 Working with Server Sessions 使用存储库 Working with Repositories 使用工作区 Working with Workspaces 使用资源 Working with Resources 使用服务 Working with Services 运行工作区 Running Workspaces显示代码: Java C+ .NET介绍本文档是使用 FME Server API 开发应用程序的入门资料。 概述了许多常见的操作,例如获取服务会话(obtaining

2、 a server session)、 管理存储库项目和资源(managing repository items and resources)、运行工作区(running workspaces)。 请注意,提供的示例代码旨在示例演示。以下相关的开发链接可能会有所帮助: API Documentation - .NET API Demo Source File - .NET演示示例创建了一个命令行应用程序,该示例代码阐述了很多常见的 FME Server API 概念。 运行示例命令行应用程序需要带两个参数。 第一个参数是 FME Server 主机名,第二个参数是 FME Server 的端口

3、号。 在执行命令行应用程序时,将显示一个菜单,来提示您选择一个给定的命令。如下图。该示例代码有 Java、 c + + 和.net 三个版本。 请参阅 FME Server开发人员指南 FME Server Developer Guide 进一步了解有关如何设置您的开发环境的信息。F M EW o r k b e n chF M E S e r v e rW e b I n t e r f a c eF M E S e r v e rC o n s o l eY a h o o M a p s( G e o R s s)G o o g l e E a r t hN e t ( K M L)M

4、i c r o s o f tV i r t u a l E a r t h( G e o R s s )A r c M a pO G C A d d -O n( W F S ). N e t o r J S PU s i n g F M E S e r v e rA P IG o o g l e M a p s( K M L a n dG e o R s s )F M E U n i v e r s a l V i e w e rS p a t i a l D i r e c tF M E S e r v e rA P IS e r v i c eF M EE n g i n e sR e

5、p o s i t o r i e sT r a n s f o r m a t i o nM a n a g e rW o r k s p a c e sS e r v l e t sS a f e S o f t w a r e C l i e n t sO t h e r C l i e n t sF M E S e r v e r使用服务器会话要使用 FME Server API ,首先需要创建一个服务器会话。 可以使用如下所示的工厂方法创建服务器会话。IFMEServerSession serverSession_ = FMEServer.CreateServerSession();

6、服务器会话一旦创建,您可以创建初始化服务器会话所需的对象。 若要初始化服务器会话,需要创建连接信息对象,以指定服务器会话的连接参数。如下所示。IFMEServerConnectionInfo connectionInfo_ = serverSession_.CreateServerConnectionInfo(host, port, , );serverSession_.Init(connectionInfo_, null);服务器会话初始化后,就可以创建与 FME Server 进行交互的任何其他对象。 包括能够管理项目和资源的存储库管理器、运行工作区(running workspaces)

7、 、转换管理器(Transformation Manager) 。使用服务器会话时特别需要注意的是确保您的服务器会话完成后得到释放。如果用户从未释放过他们的初始化服务器会话连接,您最终可能耗尽相关的连接资源。 下面显示了释放服务器会话连接。serverSession_.Disconnect();注意: FME Server API 是不区分大小写的(case insensitive) ,但所有唯一标识符如存储库名称、 工作区名称、 资源名称、 服务名称等除外。top使用存储库存储库管理器作为 FME Server 的一个组件,主要用来管理存储库。 存储库是一个集中存储项目、 资源和启用 FME

8、 Server 执行其功能的其他事情的区域。 一个典型的项目是一个工作区,自定义格式或自定义的转换器(transformer) 。 与项目相关联的资源。若要访问存储库,您需要从服务器会话中获取存储库管理器对象。如下所示:IFMERepositoryManager repositoryMgr_ = serverSession_.GetRepositoryManager();如何列出可用存储库存储库管理器对象使我们能够获得所有可用的存储库。IFMERepository repositoryList = repositoryMgr_.GetRepositories(null);foreach (IF

9、MERepository repository in repositoryList)Console.Write(0 1n, repository.Name, repository.Description);如何添加存储库存储库由其名称唯一标识。 通过指定一个新的存储库名称和存储库说明,可以创建一个新的存储库。注意: 如果您不检查存储库中是否已经存在一个具有相同名称的存储库,就添加一个存储库中具有相同的名称的存储库,您将需要处理 FME Server 异常或返回错误。if (!repositoryMgr_.RepositoryExists(name)repositoryMgr_.AddRepos

10、itory(name, description);elsethrow new FMEServerException(There is already a repository with this name!);如何删除存储库删除存储库需要存储库的名称。 必须知道移除存储库将同时移除它包含的所有项目和资源。if (!repositoryMgr_.RemoveRepository(name)throw new FMEServerException(There is no repository with this name!);使用工作区工作区是一种类型的存储库项目,因此在这一节中的概念在其他的存储

11、库项目如自定义格式和自定义的转换器也可用。 工作区通常的文件扩展名为 FMW,而自定义格式文件扩展名为 FDS,自定义转换器文件扩展名为 FMX。FME 工作区通过 FME Workbench 创建,可以发布到一个 FME Server存储库中,以使多个用户可以访问它们。FME Server 存储库中的工作区还可以下载、修改、然后再次发布。默认安装的 FME Server 中附带了许多示例工作区,但大多数用户将创建他们自己的工作区。 在这一节中,假定您将使用示例工作区或您自己使用FME Workbench 创建的工作区。如何列出存储库中的工作区工作区名称可以使用存储库方法中的获取工作区概要方法

12、快速列出。此外,可使用其他存储库方法读取有关工作区的更多详细信息。IFMERepository repositoryList = repositoryMgr_.GetRepositories(null);foreach (IFMERepository repository in repositoryList)IFMEWorkspaceSummary workspaceSummaries = repository.GetWorkspaceSummaries(null);foreach (IFMEWorkspaceSummary workspaceSummary in workspaceSumma

13、ries)Console.Write(Repository:0 1 2 ON:3n,repository.Name,workspaceSummary.Title,workspaceSummary.Name,workspaceSummary.IsEnabled);如何将工作区添加到存储库中要将一个新工作区添加到存储库,存储库名称、 工作区文件路径 (如C:myworkspacesfoo.fmw) 和工作区名称 (如 foo.fmw)是必需的。在添加一个工作区时,实际的工作区文件上传到了 FME Server 存储库中。IFMERepository repository = repositoryM

14、gr_.GetRepository(repositoryName);if (!repository.ItemExists(workspaceName)repository.AddItem(workspaceName, workspaceFilePath);elsethrow new FMEServerException(There is already a workspace with this name!);如何更新存储库中的工作区要更新存储库中的工作区,存储库名称、 工作区文件路径 (如 C:myworkspacesfoo.fmw) 和工作区名称 (如 foo.fmw)是必需的。由于工作区

15、名称唯一了标识存储库中的工作区,因而需要与您想要更新的工作区匹配。 当更新工作区时,实际的工作区文件上传到了 FME Server 存储库中。IFMERepository repository = repositoryMgr_.GetRepository(repositoryName);if (repository.ItemExists(workspaceName)repository.UpdateItem(workspaceName, workspaceFilePath);elsethrow new FMEServerException(There is no workspace with

16、this file name!);如何从存储库中获得工作区要从存储库中获得一个工作区, 存储库名称、 本地工作区文件路径 (如C:myworkspacesfoo.fmw) 和工作区名称 (如 foo.fmw)是必需的。由于工作区名称唯一了标识存储库中的工作区,因而需要与您想要获取的工作区匹配。 获取一个工作区时, 实际工作区文件从 FME Server 存储库中下载到指定的本地工作区文件路径下。IFMERepository repository = repositoryMgr_.GetRepository(repositoryName);if (repository.ItemExists(workspaceName)repository.GetItem(workspaceName,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号