skyline java二次开发_Skyline Web 二次开发- 7.CreateDynamicObject

本文介绍如何在Skyline Java二次开发中创建自定义轨迹路线,包括创建折线数据、路径点位数据和动态对象数据,实现图标跟随路线行走或主视角飞行的效果。示例代码展示了动态对象的创建和属性设置。
摘要由CSDN通过智能技术生成

创建自定义轨迹路线,置物移动或主视角飞行。

注意事项

先在地图上绘制出行走路线,可以让图标跟着路线行走或者主视角跟随路线飞行。

需求分析

创建折线数据

创建路径点位数据

创建动态对象数据

播放

方法说明

SGWorld66.Creator.GeometryCreator.CreateLineStringGeometry(Vertices);

创建几何线型字符串数据,详见API。

SGWorld66.Creator.CreatePolyline(Geometry,LineColor,AltitudeType,GroupID,Description);

创建折线数据,详见API。

SGWorld66.Creator.CreateRouteWaypoint(X,Y,Alititude,Speed,Yaw,Pitch,Roll,CameraDeltaYaw,CameraDeltaPitch,MessageID);

创建路径坐标点数据,详见API,注意Speed为到下一个点位的速度。

SGWorld66.Creator.CreateDynamicObject(Waypoints,MotionStyle,ObjectType,FileNameOrText,ScaleFactor,AltitudeType,GroupID,Description);

创建动态对象,详见API。常用属性:FileName 图片路径,TurnSpeed 转弯速度,CircularRoute 该对象完成后是否重新循环,Pause 是否暂停,开始即设置false。

Jsp源码

var SGWorld66;

var guihualuxianGroup; //路线Group组

function init()

{

setTimeout(function () {

SGWorld66 = TerraExplorer.CreateInstance("TerraExplorerX.SGWorld66");

SGWorld66.Open("http://www.skylineglobe.com/SkylineGlobeLayers/SG_ExternalFlys/skylineglobe.fly");

//1.飞行到三维场景

SGWorld66.Navigate.FlyTo(SGWorld66.Creator.CreatePosition(110.98775408994,19.64469583470,0,0,0,-30,0,700));

//2.切换二维图,绘制行走轨迹路线

setTimeout("guijiluxian();",7000);

}, 500);

}

//绘制行走轨迹路线

function guijiluxian(){

guihualuxianGroup = SGWorld66.ProjectTree.CreateGroup("guihualuxianGroup","");

var geometry = SGWorld66.Creator.GeometryCreator.CreateLineStringGeometry("LineString(110.9898247 19.64392506 30,110.9896247 19.64653288 30,110.9876747 19.64603288 30)");

//创建颜色

var color = SGWorld66.Creator.CreateColor(255,0,0,0.7);

//创建折线

var line = SGWorld66.Creator.CreatePolyline(geometry,color,0,guihualuxianGroup,"几何折线");

//第一种数据加载方式

var RouteWaypoint = [];

for (var i = 0; i < line.Geometry.Points.count; i++) {

RouteWaypoint.push(SGWorld66.Creator.CreateRouteWaypoint(line.Geometry.Points.Item(i).X, line.Geometry.Points.Item(i).Y,line.Geometry.Points.Item(i).Z,300,0,0,0,0,0,-1));

}

var gPolyObj = SGWorld66.Creator.CreateDynamicObject(RouteWaypoint, 1, 2, "http://192.168.1.222:9090/skyline/test/tv.png", 0.5, 0, guihualuxianGroup, "010");

gPolyObj.TurnSpeed = 1000;

gPolyObj.CircularRoute = false;

gPolyObj.RestartRoute(0);

gPolyObj.Pause = false;

//第二种数据加载方式

//var gPolyObj = SGWorld66.Creator.CreateDynamicObject(0, 1, 1, "010", 100, 0, "", "010");

//for (var i = 0; i < line.Geometry.Points.count; i++) {

//var RouteWaypoint = SGWorld66.Creator.CreateRouteWaypoint(line.Geometry.Points.Item(i).X, line.Geometry.Points.Item(i).Y,line.Geometry.Points.Item(i).Z,800,0,0,0,0,0,-1);

//gPolyObj.Waypoints.AddWaypoint(RouteWaypoint);

//}

//SGWorld66.Navigate.FlyTo(gPolyObj,11); //飞行主视角

}

效果图

f55562833762e5b5be34d7c18f72647b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值