现在很多三维项目中,不仅仅要用到三维地形,正射影像和矢量数据,还会融合到各种三维模型,包括传统的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. lua的String

    基础字符串函数 字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string.rep(s,n) 返回字符串s重复n次的结果:    3 ...

  2. Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

    在4.4版本中,大家对产品优化的一些建议和意见进行了相应的优化和修复,同时,还新增了一些令人激动的功能和插件. 下面先为大家介绍4.4版本中Smobiler的优化和修复: 优化 1, PageView ...

  3. [PHP] 工厂模式的日常使用

    负责生成其他对象的类或方法,这就是工厂模式,下面是一个经常见到的用法 <?php class test{ public $x=1; public $setting; //负责生成其他对象的类或方 ...

  4. 解决ajaxfileupload上传文件在IE浏览器返回data为空问题

    关于ajaxfileupload,建议还是别用,已经没有人维护的脚本了,笔者就是入了这个坑. 在IE浏览器中ajaxfileupload返回data为空 jq.ajaxFileUpload ( { u ...

  5. 经典面试题:从 URL 输入到页面展现到底发生什么?

    前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 本文首发地址为GitHub 博客,写文章不易,请多多支持与关注 ...

  6. SpringBoot究竟是如何跑起来的?

    摘要: 神奇的SpringBoot. 原文:SpringBoot 究竟是如何跑起来的? 作者:老钱 Fundebug经授权转载,版权归原作者所有. 不得不说 SpringBoot 太复杂了,我本来只想 ...

  7. vue中如何使用mockjs摸拟接口的各种数据

    mockjs的作用 生成模拟数据 模拟 Ajax 请求,返回模拟数据 基于 HTML 模板生成模拟数据(后续更新) 帮助编写单元测试(后续更新) Vue 中使用 mock 有两种使用方式,一种是仅编写 ...

  8. HTML和CSS前端教程03-CSS文本样式

    目录 1.CSS颜色-建议就用十六进制 2.CSS长度的度量单位-建议就用px 3.CSS文本样式 3.1. 字体属性 3.1. 文本样式 1.CSS颜色-建议就用十六进制 p{ color: #ff ...

  9. Redis环境搭建和代码测试及与GIS结合的GEO数据类型预研

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 1.1传统MySQL+ Memcached架构遇到的问题 My ...

  10. 在AndroidStudio上使用AddressSanitizer

    在AndroidStudio上使用AddressSanitizer AddressSanitizer是Google主导的一个开源内存问题检测工具.现在也开始支持Android平台,且受Google推荐 ...