做门窗投标网站,网站建设视频教程。,怎么样找回网站密码,企业类网站包括哪些三维地形如何实现坡度分析
一、介绍
MapGIS Objects SDK #xff1a; 是一款组件式地理信息开发平台#xff0c;提供全空间数据存储、管理、显示、编辑、查询、分析、制图输出等二三维一体化核心 GIS 功能#xff0c;提供 C、.NET、Java、Python 等开发资源#xff0c;接…三维地形如何实现坡度分析一、介绍MapGIS Objects SDK 是一款组件式地理信息开发平台提供全空间数据存储、管理、显示、编辑、查询、分析、制图输出等二三维一体化核心 GIS 功能提供 C、.NET、Java、Python 等开发资源接口简单易用性能优越具备跨平台开发能力。本篇内容将知道您如何使用MapGIS Objects SDK、MapGIS Desktop SDK实现在三维场景中如何实现模型的捕捉功能。二、开发环境软件版本下载地址说明MapGIS 10 x64 All In One SDK for Windows10.7开发包下载地址MapGIS 提供的一款地理信息开发平台包含 MapGIS Objects Java 面向 Java 开发环境的跨平台组件式 GIS 开发资源。MapGIS 开发授权\开发授权下载地址MapGIS 针对开发者提供开发授权下载开发包并安装后还需要获取开发授权才能正常使用。IntelliJ IDEA2020.3 以上版本IDEA 下载地址一款适用于 Java 专业开发的集成开发环境IDE。JDK1.8JDK 下载地址JDK 是 Java 语言的软件开发工具包JDK 是整个 java 开发的核心它包含了 JAVA 的运行环境JVMJava 系统类库和 JAVA 工具。三、应用场景及功能实现坡度是指坡面的垂直高度与对应水平距离的比值用于表示地面倾斜程度的一个重要地理参数。坡度值越大表明地势越陡峭反之则表示地形较为平缓。基于 DEM 基础上进行坡度计算是 GIS 空间分析的常用功能。本文将利用 MapGIS 二次开发库提供的 PolygonProjector 和 G3DBaseTool 对象实现交互工具在三维场景对 DEM 数据进行坡度分析功能。相关 API 的详细说明可参考MapGIS Objects Java 的开发入门文档api 文档参考 MapGIS Objects Java API。1、构建坡度坡向分析工具类继承自 G3DToolpublicclassSlopeAspectAnalysisToolextendsG3DBaseTool{privateinttoolType1;//1-坡度2-坡向privatePolygonProjectorpp;/** * param sceneControl * param type 1-坡度分析2-坡向分析 */publicSlopeAspectAnalysisTool(SceneControlsceneControl,inttype){super(sceneControl);ScenescenesceneControl.getMapGISScene();Rect3Drect3DnewRect3D();scene.getExtent(rect3D);this.ppnewPolygonProjector(this.sceneControl.getNativeHandle(),(float)rect3D.getZMax());this.toolTypetype;}Overridepublicvoidstart(){super.start();}Overridepublicvoidstop(){super.stop();}OverridepublicbooleanonMouseDown(MouseEvente){returnsuper.onMouseDown(e);}OverridepublicbooleanonMouseUp(MouseEvente){returnsuper.onMouseUp(e);}OverridepublicbooleanonMouseDragged(MouseEvente){returnsuper.onMouseDragged(e);}}2、重载实现 G3DTool 相关方法publicclassSlopeAspectAnalysisToolextendsG3DBaseTool{privateinttoolType1;//1-坡度2-坡向privatePolygonProjectorpp;/** * param sceneControl * param type 1-坡度分析2-坡向分析 */publicSlopeAspectAnalysisTool(SceneControlsceneControl,inttype){super(sceneControl);ScenescenesceneControl.getMapGISScene();Rect3Drect3DnewRect3D();scene.getExtent(rect3D);this.ppnewPolygonProjector(this.sceneControl.getNativeHandle(),(float)rect3D.getZMax());this.toolTypetype;}Overridepublicvoidstart(){this.pp.startSlopeAspec(this.toolType1,SelectOperateType.Rectangle);super.start();}Overridepublicvoidstop(){super.stop();this.pp.stopSlopeAspec();}OverridepublicbooleanonMouseDown(MouseEvente){this.sceneControl.enableInputTool(false);if(e.getButton()MouseButton.PRIMARY){this.pp.slopeOperate(MouseOperateType.LButtonDown,e.getX(),e.getY());}elseif(e.getButton()MouseButton.SECONDARY){this.pp.slopeOperate(MouseOperateType.RButtonDown,e.getX(),e.getY());}returnsuper.onMouseDown(e);}OverridepublicbooleanonMouseUp(MouseEvente){this.sceneControl.enableInputTool(true);if(e.getButton()MouseButton.PRIMARY){this.pp.slopeOperate(MouseOperateType.LButtonUp,e.getX(),e.getY());}returnsuper.onMouseUp(e);}OverridepublicbooleanonMouseDragged(MouseEvente){this.pp.slopeOperate(MouseOperateType.MouseMove,e.getX(),e.getY());returnsuper.onMouseDragged(e);}}3、启动坡度坡向分析工具SlopeAspectAnalysisTooltoolnewSlopeAspectAnalysisTool(sceneControl,1);sceneControl.setActiveTool(tool);tool.start();) MouseButton.PRIMARY) {this.pp.slopeOperate(MouseOperateType.LButtonDown, e.getX(), e.getY());} else if (e.getButton() MouseButton.SECONDARY) {this.pp.slopeOperate(MouseOperateType.RButtonDown, e.getX(), e.getY());}return super.onMouseDown(e); } Override public boolean onMouseUp(MouseEvent e) { this.sceneControl.enableInputTool(true); if (e.getButton() MouseButton.PRIMARY) { this.pp.slopeOperate(MouseOperateT