首页 / 浏览问题 / 组件GIS / 问题详情
组件开发实现打开工作空间的时候自动打开地图、场景,如何实现?
34EXP 2022年06月28日

使用产品:idesktopX11i, 操作系统:win10 x64
数据类型:  文件型
问题详细描述:代码实现自动化打开工作空间中已经存在的地图或场景
问题重现步骤: 1、可实现自动打开工作空间

2、工作空间中已经存在的地图、场景如何自动打开?


 

1个回答

您好,请问您是想做纯组件开发还是iDesktopX的扩展开发呢?如果是组件开发,提供了以下意见供您参考:

1.打开指定地图

通过WorkspaceConnectionInfo打开工作空间了以后,建立MapControl与Workspace的连接,通过名称打开工作空间中的地图 mapControl1.Map.Open("地图名称"),最后通过mapControl1.Map.Refresh()刷新地图窗口即可。

关于打开地图部分,您可在帮助文档【产品入门】->【打开地图、添加图层】进行查看。在线帮助文档链接如下http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsNet/index.html

2.打开指定场景

在组件的完整包中有打开三维场景的相关示例代码,可以参考一下:安装目录\SampleCode\Realspace\OpenScene\OpenScene.csproj
其他Realspace中只要包含三维操作的都有打开场景这样的基本操作。

希望能帮到您!

2,508EXP 2022年06月28日
iDesktopX扩展开发,扩展自己的菜单,通过Application.getActiveApplication().getWorkspace()可以获取到workspace、scenes,我看样例代码都是通过一个mapcontrol去实现,但是我现在没有找到如何获取这个mapcontrol。

您好,在 iDesktopX 扩展开发中,建议您参考以下方式新建地图窗口和场景窗口:

  • 新建地图窗口:
IFormMap formMap = (IFormMap) FormUtilities.fireNewWindowEvent(WindowType.MAP);
formMap.getMapControl().getMap().Open(mapName);
  • 新建场景窗口:
IFormScene sceneForm = (IFormScene) FormUtilities.fireNewWindowEvent(WindowType.SCENE);
sceneForm.getSceneControl().getScene().open(sceneName);

希望可以帮到您。

...