现在很多三维项目中,不仅仅要用到三维地形,正射影像和矢量数据,还会融合到各种三维模型,包括传统的3DMax手工建模,BIM,倾斜摄影自动建模,激光点云模型,三维地质体模型等等。

三维平台首先要做的是把这些多源数据承载进来,并且要能够流畅,稳定地运行使用。

接下来就是各种展示,应用,分析。

三维剖切,就是一种较好的展示复杂结构模型的方法,比如应用于BIM,室内精细建模,三维地质体模型等。

SkylineGlobe提供的核心示例代码如下:

//-------------------
function showCrossSection(gBoxObj) {
try {
var SGWorld = CreateSGObj();
var vertices = [];
var sectionSize = gBoxObj.Width * 5;
gLastPos = gBoxObj.Position.Copy();
var pos = gBoxObj.Position;
var planeTolarance = 100 / 100;
if (gBoxObj.Position.Pitch == 90) {
var yaw = gBoxObj.Position.Yaw - 180;
pos = pos.Move(planeTolarance, yaw - 180, 0); // make sure the cut area doesn't include the box
pos = pos.Move(gBoxObj.Width / 2, 0, -90);
pos = pos.Move(gBoxObj.Width / 2, yaw + 90, 0);
vertices[0] = pos;
pos = pos.Move(sectionSize, yaw - 180, 0);
vertices[1] = pos;
pos = pos.Move(gBoxObj.Width, yaw - 90, 0);
vertices[2] = pos;
pos = pos.Move(sectionSize, yaw, 0);
vertices[3] = pos;
vertices[4] = vertices[0].Move(gBoxObj.Width, 0, 90);
vertices[5] = vertices[1].Move(gBoxObj.Width, 0, 90);
vertices[6] = vertices[2].Move(gBoxObj.Width, 0, 90);
vertices[7] = vertices[3].Move(gBoxObj.Width, 0, 90);
}
else {
pos = pos.Move(planeTolarance, 0, 90); // make sure the cut area doesn't include the box
pos = pos.Move(gBoxObj.Width / 2, gBoxObj.Position.Yaw, 0);
pos = pos.Move(gBoxObj.Width / 2, gBoxObj.Position.Yaw + 90, 0);
vertices[0] = pos;
pos = pos.Move(gBoxObj.Width, gBoxObj.Position.Yaw - 180, 0);
vertices[1] = pos;
pos = pos.Move(gBoxObj.Width, gBoxObj.Position.Yaw - 90, 0);
vertices[2] = pos;
pos = pos.Move(gBoxObj.Width, gBoxObj.Position.Yaw, 0);
vertices[3] = pos;
vertices[4] = vertices[0].Move(sectionSize, 0, 90);
vertices[5] = vertices[1].Move(sectionSize, 0, 90);
vertices[6] = vertices[2].Move(sectionSize, 0, 90);
vertices[7] = vertices[3].Move(sectionSize, 0, 90);
} gGeometry = SGWorld.Creator.GeometryCreator.CreateLineStringGeometry(vertices);
SGWorld.Analysis.ShowCrossSectionBox(gGeometry, false, 0xffffffff);
}
catch (err) {}
} function HideCrossSectionBox()
{
if (syBoxobj != null) {
var sg = CreateSGObj();
sg.Analysis.HideCrossSectionBox();
sg.Creator.DeleteObject(syBoxobj.ID);
syBoxobj = null;
}
}

完整的功能实现代码在C:\Program Files\Skyline\TerraExplorer Pro\Tools\CrossSection这个目录里。

SkylineGlobe 7.0.1 & 7.0.2版本Web开发 如何实现对三维模型和地形的剖切展示的更多相关文章

  1. SkylineGlobe 7.0.1 & 7.0.2版本Web开发 如何实现土方量计算

    土方量计算,或者叫填挖方计算,体积计算,Skyline在很早的版本中就提供了这个的功能. 目前的软件版本,不仅仅可以对地形修改对象进行土方量计算,还可以在FLY工程中导入DEM数字高程模型数据,计算不 ...

  2. SkylineGlobe 7.0.1 & 7.0.2版本Web开发 如何正确使用三维地图控件和工程树控件

    Skyline TerraExplorer Pro目前正式发布的7.0.1&7.0.2版本,还只是64位的版本, 在Web开发的时候,如何在页面中正确嵌入三维地图控件,让一些小伙伴凌乱了. 下 ...

  3. .Net框架2.0和4.0版本对比

    .Net版本 2.0 SP2 4.0 操作系统 Windows 2000 SP4以上 Windows XP SP3以上 安装包大小 NetFx20SP2_x86.exe 23.8 MBNetFx20S ...

  4. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  5. 让人眼花缭乱的 RSS 版本0.90、0.91、0.92、0.93、0.94、1.0 和 2.0

    1.0的规范 http://web.resource.org/rss/1.0/spec 2.0的规范 http://cyber.law.harvard.edu/rss/rss.html 一个介绍什么是 ...

  6. selenium2.0的初步封装(java版本)

    我们都知道, 在本地创建java项目后,引入selenium-java-2.35.0.jar   selenium-support-2.35.0.jar junit-4.8.1.jar等等jar包之后 ...

  7. Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程

    原文:Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列之二 SQL Source Co ...

  8. LanSoEditor_advance1.8.0 视频编辑的高级版本

    ------------------------------------------2017年1月11日11:18:33------------------------------------- 我们 ...

  9. 所使用的“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”版本高于所引用的程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的版本

    错误信息:所使用的"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&qu ...

随机推荐

  1. ppt制作元素采集

    原文链接 https://www.zhihu.com/question/52157612/answer/247501754?utm_source=qq&utm_medium=social 1动 ...

  2. .NetCore部署至IIS

    部署教程 操作系统要求 Windows 7 或更高版本 Windows Server 2008 R2 或更高版本 依赖的组件 Runtime & Hosting Bundle 可以选择.NET ...

  3. Centos 7 Puppet之foreman介绍安装测试

    一.简介 1.前言(引用一下网上的资料) 随着企业的 Linux 系统数量越来越多,管理问题便成为一个相对麻烦并需要急 迫解决的问题,这里有 2 个 Key Message:1)统一管控体系非常重要, ...

  4. webpack4.0各个击破(6)—— Loader篇

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

  5. nginx错误界面优化和日志管理

    nginx错误界面优化 在进行web访问的时候,经常会遇到网站打不开报错的情况,nginx默认的界面并不美观,我们可以通过重定向到自定义的错误页面,提升用户体验,比如淘宝的错误页面还有商品信息和广告. ...

  6. ArcGIS API for JavaScript 4.2学习笔记[20] 使用缓冲区结合Query对象进行地震点查询【重温异步操作思想】

    这个例子相当复杂.我先简单说说这个例子是干啥的. 在UI上,提供了一个下拉框.两个滑动杆,以确定三个参数,使用这三个参数进行空间查询.这个例子就颇带空间查询的意思了. 第一个参数是油井类型,第二个参数 ...

  7. iOS----------APP怎样做更安全

    1 网络请求的安全方案 1.1 https请求,最好有安全交互平台. 1.2 对重要的参数请求进行加密(推荐AES,ERSA加密). 1.3 服务器返回数据时,对重要数据进行加密. 1.4 不要把密钥 ...

  8. Vue一个案例引发「内容分发slot」的最全总结

    今天我们继续来说说 Vue,目前一直在自学 Vue 然后也开始做一个项目实战,我一直认为在实战中去发现问题然后解决问题的学习方式是最好的,所以我在学习一些 Vue 的理论之后,就开始自己利用业余时间做 ...

  9. 基于Git项目管理客户端SourceTree的免注册安装及远程连接方法

    作为程序员,不可避免的要在github上查询代码,而在企业项目中,为了使得项目好管理需要使用项目管理客户端,所以接下来详细讲解一下基于git的sourceTree在windows系统下的安装及与Git ...

  10. win7 64 位操作系统,进程System,PID为4,扫描连接局域网ip地址的139和445端口

    偶然发现电脑的System进程不间断扫描连接局域网内的其它IP对应的445和139端口,这是个问题. 上网搜索,立即关闭139端口的监听. 方法如下: 本地连接属性-TCP/IP属性-高级-WINS选 ...