三维场景中如何实现捕捉功能
一、介绍
MapGIS Objects SDK: 是一款组件式地理信息开发平台,提供全空间数据存储、管理、显示、编辑、查询、分析、制图输出等二三维一体化核心 GIS 功能,提供 C++、.NET、Java、Python 等开发资源,接口简单易用,性能优越,具备跨平台开发能力。
本篇内容将知道您如何使用MapGIS Objects SDK、MapGIS Desktop SDK实现在三维场景中如何实现模型的捕捉功能。
二、开发环境
| 软件 | 版本 | 下载地址 | 说明 |
|---|---|---|---|
| MapGIS 10 x64 All In One SDK for Windows | 10.7 | 开发包下载地址 | MapGIS 提供的一款地理信息开发平台,包含 MapGIS Objects Java 面向 Java 开发环境的跨平台组件式 GIS 开发资源。 |
| MapGIS 开发授权 | \ | 开发授权下载地址 | MapGIS 针对开发者提供开发授权,下载开发包并安装后,还需要获取开发授权才能正常使用。 |
| IntelliJ IDEA | 2020.3 以上版本 | IDEA 下载地址 | 一款适用于 Java 专业开发的集成开发环境(IDE)。 |
| JDK | 1.8 | JDK 下载地址 | JDK 是 Java 语言的软件开发工具包,JDK 是整个 java 开发的核心,它包含了 JAVA 的运行环境(JVM+Java 系统类库)和 JAVA 工具。 |
三、应用场景及功能实现
在基于 MapGIS 二次开发库进行的桌面端或者插件开发应用时,用户在二维视图或者三维场景中通过自定义交互的方式去获取几何或者模型的图形信息或者属性信息,进而进行进一步的编辑、分析以及其他一些数据挖掘的应用,都是最为常见的应用开发场景。本篇将主要引导用户如何在三维场景中使用 SDK 所提供的三维捕获工具 PickTool,从而实现对场景中的模型进行捕捉。相关 API 的详细说明可参考MapGIS Objects Java 的开发入门文档,api 文档参考 MapGIS Objects Java API。
1.初始化交互选择工具 PickTool
//构建场景容器控件对象SceneControlsceneControl=newSceneControl();//设置三维场景为平面模式sceneControl.setSceneMode(SceneMode.LOCAL);PickToolpickTool=newPickTool(sceneControl);pickTool=newPickTool(sceneControl);pickTool.addPickedListener(this::pickTool_Picked);//添加捕获监听事件pickTool.setSelectTolerance(8);//设置捕捉精度sceneControl.setActiveTool(pickTool);//设置为场景控件当前激活工具this.pickTool.start();//开始捕获2.实现并处理捕获监听事件
privatevoidpickTool_Picked(PickedEventObjecte){if(e.isSuccess()){Result3DSetset=e.getResult3DSet();Result3DItemitem=null;for(i=0;i<set.getCount();i++){item=set.getItem(i);ModelInfomInfo=item.getModelInfo();//可通过ModelInfo获取模型所在场景、图层以及ID,进而进行相应的业务逻辑}}}