Skyline WEB端开发5——添加标签后移动
针对于标签或者模型,在skyline上可以进行移动。可以让一个模型可以像无人机似的飞行,或者描述从一个点到另一个点的飞行轨迹。
话不多说,直接上干货。
第一步 添加标签
参考网址:https://www.cnblogs.com/517chen/p/11168665.html
第二步 设置属性
function createLable(){
var label = sgworld.Creator.CreateLabel(labelPos, "北京科技有限公司.\r\n西安办事处\r\n", cLabelPath2, cLabelStyle, sgworld.ProjectTree.FindItem("新建组 ##575097"), "grey_bubble");
//在生成lable对象后,需要设置一个属性,即
lable.Attachment.AutoDetach = false;
}
对于动态对象,AutoDetach设置为默认值 false。一旦摄像机到达动态对象,它会继续按照对象的移动状态来跟踪对象。但是,如果 AutoDetach 设置为 true,一旦摄像机到达对象时,它将停止。如果客户端不断更新对象的位置(例如,作为一个 GPS 更新),它应设置此值(在创建对象的时候)为 false。这样,如果用户飞往这个对象,它后面的摄像机继续。
可理解为如果设置为false,那么当标签进行移动的时候,摄像机的位置会跟随着移动,当停止到某一点的时候,摄像机停止,标签再次移动的时候,摄像机依然随之移动。
如果设置为true,那么当标签进行移动的时候,摄像机的位置会跟随着移动,当停止到某一点的时候,摄像机停止,标签再次移动的时候,摄像机不再随之移动。
第三步 添加监听
//在每一帧渲染前都会触发该方法
sgworld.AttachEvent("OnFrame", OnFrame);
OnFrame事件详解参考 https://www.cnblogs.com/517chen/p/11179572.html
第四步 添加移动方法
1、Lerp
一个坐标以一定比例朝着另一个坐标移动
function OnFrame() {
if(lable != null) {
//默认飞到某一个位置
var Washington = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
1000,
0,
0.0, // 偏航角
-43.0); // 俯仰角
lable.Position = lable.Position.Lerp(Washington, 1);
}
}
Lerp(
Position, //需要新建一个位置坐标,或者从某个地方读取到的位置坐标
Percentage //移动的比例
)
2、Move
将标签的坐标移动一段距离
function OnFrame(){
if(lable != null){
lable.Position = lable.Position.Move(100, -90, 45);
}
}
Move(
Distance, //移动的距离。
Yaw, //移动坐标的方向。0=北,90=东,180=南,-90=西,-180=南
Pitch //移动坐标的俯仰角。0=水平,1~90=向上飞行,-90~-1=向下飞行
)
3、MoveToward
移动坐标走向另一个坐标指定的距离
function OnFrame() {
if(lable != null) {
//默认飞到某一个位置
var Washington = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
1000,
0,
0.0, // 偏航角
-43.0); // 俯仰角
lable.Position = lable.Position.MoveToward(Washington, 1);
}
}
MoveToward(
Position, //一个位置坐标,表示坐标朝着已选定的坐标移动
Distance //移动的距离
)
以上就是关于标签或模型的移动的内容。
下面附上完整代码可参考
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="data/data.json"></script>
<script language="javascript">
//初始化加载TerraExplorer工程
$(window).load(function () {
try {
var flyPath = "C:\\Users\\admin\\Desktop\\SkyglobeLB.fly";
// attach callback to the load finished event
sgworld.AttachEvent("OnLoadFinished", OnProjectLoadFinished);
// Load default developer fly file from www.skylineglobe.com web site.
// default load is in async mode
sgworld.Project.Open(flyPath);
}
catch(ex) {
alert(ex.message);
}
});
//加载事件
function OnProjectLoadFinished(){
//默认飞到某一个位置
var Washington = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
1000,
0,
0.0, // 偏航角
-45.0); // 俯仰角
sgworld.Navigate.FlyTo(Washington);
}
//坐标点的位置
var lable;
//按照俯仰角进行移动
function move(){
//创建点
var labelPos = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
10,
2,
0,//Yaw
-60, // Pitch偏航角
-26); // Roll俯仰角); var cLabelStyle = sgworld.Creator.CreateLabelStyle(); cLabelStyle.TextOnImage = false;//设置文本是否显示在图像上。设置true(字在图上),设置false(字在图下)
cLabelStyle.Bold = true;//设置粗体
cLabelStyle.MultilineJustification = "center";//如果有多行文字的话,确定文本对齐方式
cLabelStyle.TextAlignment = "Top";//决定了有关的背景文本的水平和垂直对齐。
// cLabelStyle.MaxViewingHeight = 8000000;//最大高度,如果超过此高度后,该点将隐藏
var cLabelPath = "F:\\myself\\images\\grey_bubble.png";//图片路径
lable = sgworld.Creator.CreateLabel(labelPos, "guanxin"+10, cLabelPath, cLabelStyle, sgworld.ProjectTree.FindItem("新建组 ##575097"), "grey_bubble"+10);
lable.Attachment.AutoDetach = false;
//在每一帧渲染前都会触发该方法
sgworld.AttachEvent("OnFrame", OnFrame);
} function OnFrame(){
if(lable != null){
lable.Position = lable.Position.Move(100, -90, $("#pitch").val());
}
} /*function OnFrame(){
if(lable != null){
//默认飞到某一个位置
var Washington = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
1000,
0,
0.0, // 偏航角
-43.0); // 俯仰角
lable.Position = lable.Position.Lerp(Washington, 1);
}
} function OnFrame(){
if(lable != null){
//默认飞到某一个位置
var Washington = sgworld.Creator.CreatePosition(
116.3912630081,
39.9074812817,
1000,
0,
0.0, // 偏航角
-43.0); // 俯仰角
lable.Position = lable.Position.MoveToward(Washington, 1);
}
}*/
</script>
<body>
<!--0=水平,+90=从下到上垂直,-90=从上到下垂直-->
俯仰角:<input type="text" name="pitch" id="pitch" />
<input type="button" value="移动" onclick="move()" />
<hr />
<div id="div_tree" style="width:20%;height:700px;float:left;border: rgb(1,158,213) 1px solid;">
<object id="LY_TerraExplorerInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" style="width:100%;height:100%;"></object>
</div>
<div id="div_3dWindow" style="height:700px;width:79%;float:left;border: rgb(1,158,213) 1px solid;">
<object id="LY_TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width:100%;height:100%;"></object>
</div>
<object id="sgworld" classid="CLSID:3A4F9199-65A8-11D5-85C1-0001023952C1" style="visibility:hidden;height:0 "></object>
</body>
</html>
Skyline WEB端开发5——添加标签后移动的更多相关文章
- Skyline WEB端开发2——添加一个定位点、文本标签
Skyline 添加定位点 sgworld.Creator.CreatePosition CreatePosition( X, //兴趣点的东西方向坐标,即经度 Y, //兴趣点的南北方向坐标,即纬度 ...
- Skyline WEB端开发1——入门
Skyline是一套优秀的三维数字地球平台软件.凭借其国际领先的三维数字化显示技术,它可以利用海量的遥感航测影像数据.数字高程数据以及其他二三维数据搭建出一个对真实世界进行模拟的三维场景.目前在国内, ...
- Skyline Web 端数据浏览性能优化
三维数据的效率一直是个瓶颈,特别是在Web端浏览一直是个问题,在IE内存限制1G的条件下,对于三维数据动不动几十G的数据量,这1G显得多么微不足道.虽然现在三维平台都是分级加载,或者在程序中采用数据分 ...
- 移动端开发的meta标签作用
一.<meta name="viewport" id="viewport" content="width=device-width, initi ...
- 关于移动端开发,vedio标签层级高遮挡蒙版的解决方案
问题描述: 使用famework7框架搭建了一个界面,然后再界面中需要使用蒙版效果,在PC端,ios测试没有问题,在Andriod播放视屏再点击显示蒙版的效果师,视频会遮盖蒙版.修改定位,z-inde ...
- AE开发中添加EngineOrDesktop后仍然有错误
.AO是32位原生组件,一般认为不支持64位系统(道听途说),所以只能在32位环境下进行编译. 在配置管理器中,新建x86后问题解决了
- Web前端开发——HTML基本标签
标题h1-h6 只有h1到h6,没有h7. 一个页面建议只有一个h1 普通文字大小大约介于h3~h4 段落p 段内换行br 段内分组span 预留格式pre 水平线hr
- 渐进式web应用开发---service worker 原理及介绍(一)
渐进式web应用(progressive Web app) 是现代web应用的一种新形式.它利用了最新的web功能,结合了原生移动应用的独特特性与web的优点,为用户带来了新的体验. 一:传统web端 ...
- 淘淘商城项目_同步索引库问题分析 + ActiveMQ介绍/安装/使用 + ActiveMQ整合spring + 使用ActiveMQ实现添加商品后同步索引库_匠心笔记
文章目录 1.同步索引库问题分析 2.ActiveM的介绍 2.1.什么是ActiveMQ 2.2.ActiveMQ的消息形式 3.ActiveMQ的安装 3.1.安装环境 3.2.安装步骤 4.Ac ...
随机推荐
- WPF修改窗体标题栏的颜色
WPF程序通常情况下没办法修改窗体标题栏的样式,包括标题栏的背景颜色. 不过借助一个叫Fluent.Ribbon的第三方控件,貌似可以修改标题栏的背景颜色. 可以通过NuGet来安装这个控件:Inst ...
- 如何配置一个绿色化的 Qt for Windows 开发环境(有.bat脚本,亲测好用) good
安装 QtCreator for Windows 其实是很简单的,不过,我一向讨厌什么软件都得弄个安装程序,我希望我所安装的这个 Qt 可以是绿色的.便携的,如果无法实现,至少让这个 Qt 可以在新系 ...
- Gps坐标距离计算C#实现
园子里找到两钟实现方式,做一记录,回头再认真学习,先拿来就用吧: 1.@旋风描述的算法: 场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519, ...
- Codility---BinaryGap
Task description A binary gap within a positive integer N is any maximal sequence of consecutive zer ...
- 30+ 强大的Buddypress主题–开始您的社区站点吧
BuddyPress起源于2008年,当时设计者设想添加社交网络功能到WordPress多用户版本中.第一个正式稳定版本的发布是在2009年的5月.自从那时起.BuddyPress开始快速的成长和演变 ...
- [迟到的万圣节向]可怕的python
什么?python简单易懂好学可读性高灵活耐用扩展好? 预测下面几个小段落的输出,来看看这个能过几关? ============================ Stage 1 预测下列输出 def ...
- java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence 解决方法
编译遇到错误,如下: May 11, 2017 1:49:42 PM org.springframework.web.context.ContextLoader initWebApplicationC ...
- ZooKeeper学习第一期---Zookeeper简单介绍(转)
转载来源:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术--分布式协调技 ...
- Ubuntu --- 【转】安装lamp(php7.0)
本篇转自:http://www.laozuo.org/8303.html.以防丢失,再次记录 PHP7已经出来有一段时间,根据网友的实践测试比之前的版本效率会高不少,而且应用到网站中打开速度会有明显的 ...
- 开源joda-time使用demo
开源joda-time 1.maven中引入 <dependency> <groupId>joda-time</groupId> <artifactId> ...