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

    /** * Source : https://oj.leetcode.com/problems/single-number-ii/ * * Given an array of integers, ev ...

  2. leetcode — word-ladder-ii

    import java.util.*; /** * Source : https://oj.leetcode.com/problems/word-ladder-ii/ * * * Given two ...

  3. Python SQLalchemy的学习与使用

    SQLAlchemy是python中最著名的ORM(Object Relationship Mapping)框架了. 前言:什么是ORM? ORM操作是所有完整软件中后端处理最重要的一部分,主要完成了 ...

  4. 初识TensorFlow

    在前边几期的文章中,笔者已经用TensorFlow进行的一些基础性的探索工作,想必大家对TensorFlow框架也是非常的好奇,本着发扬雷锋精神,笔者将详细的阐述TensorFlow框架的基本用法,并 ...

  5. [Go] go get获取官方库被墙解决

    1.直接在github上clone对应的代码 , 地址为: https://github.com/golang/xxxxxxx.git xxxxxxx为所缺的库名  , 比如net库  text库 h ...

  6. Linux-Kconfig总结与分析

    使用Kconfig时,需要注意的地方 1.在Kconfig中定义的配置宏,前缀都没有"CONFIG_",只有编译内核时,自动生成autoconf.h才会出现前缀. 2.如果XX_d ...

  7. redis分布式锁工具类

    目录 (1)需要导入的包 (2)JedisUtil类 (3)jedisPool配置 (4)使用举例 (1)需要导入的包 <dependency> <groupId>redis. ...

  8. sql server2008数据库迁移的两种方案

    方案一 1,先将源服务器上的数据库文件打包(包括mdf和ldf文件),并且复制到目标服务器上. 2,解压,然后在目标服务器上附加数据库 总结:适合数据库巨大(50GB以上),需要快速迁移数据,并且移动 ...

  9. vue结合axios使用入门

    Vue官方推荐的网络通信库不再是vue-resource了,推荐使用axios axios安装 npm: $ npm install axios bower: $ bower install axio ...

  10. 认证与Shiro安全框架

    本文内容均来自官网 1.简介 Apache Shiro是Java的一个安全框架.功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案. 实际上,S ...