Skyline桌面二次开发之路径漫游(C#)
所谓路径漫游:即创建一个动态对象和一条由多点组成的线,然后让动态对象沿着线飞行
首先绘制一条线,实际上路径漫游是不需要绘制线的,我这里只是为了确认动态对象是否沿着线路在飞行,代码如下:
//绘制路径 double[] cVerticesArray = null; cVerticesArray = new double[] { 116.35, 27.98, 0, 116.45, 28.98, 0, 116.45, 28.11, 0, 116.65, 28.45, 0, }; ILineString pILineString = sgWorld.Creator.GeometryCreator.CreateLineStringGeometry(cVerticesArray); IColor66 color = sgWorld.Creator.CreateColor(255, 0, 0, 125); var polyline = sgWorld.Creator.CreatePolyline(pILineString, color);
接下来创建动态对象,代码如下:
var dynamicObject = this.sgWorld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_GROUND_VEHICLE, DynamicObjectType.DYNAMIC_IMAGE_LABEL, @"F:\项目管理\智慧抚州\使用的Fly\data11\汽车图标\整车.png", 50, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, "", "动态对象");
参数说明:
第一个参数0:一组 IRouteWaypoint66对象,后续向动态对象中添加
第二个参数DynamicMotionStyle:移动方式,是一个枚举类型,具体的效果大家可以去试一下
第三个参数DynamicObjectType:动态对象类型,是一个枚举类型,该参数也决定了你第四个参数的文件类型
第四个参数:由于第三个参数选择的Image_label,这里我选择了一张图片
第五个参数50:文件缩放大小
第六个参数AltitudeTypeCode:高度模式
动态对象创建完成之后就是创建路径的拐点,代码如下:
var wayPoint1 = this.sgWorld.Creator.CreateRouteWaypoint(116.35, 27.98, 0, 2000); var wayPoint2 = this.sgWorld.Creator.CreateRouteWaypoint(116.45, 28.98, 0, 2000); var wayPoint3 = this.sgWorld.Creator.CreateRouteWaypoint(116.55, 28.11, 0, 800); var wayPoint4 = this.sgWorld.Creator.CreateRouteWaypoint(116.65, 28.45, 0, 800);
然后将拐点添加到动态对象中:
dynamicObject.Waypoints.AddWaypoint(wayPoint1); dynamicObject.Waypoints.AddWaypoint(wayPoint2); dynamicObject.Waypoints.AddWaypoint(wayPoint3); dynamicObject.Waypoints.AddWaypoint(wayPoint4); dynamicObject.CircularRoute = false; dynamicObject.RestartRoute(0);
最后调用飞行到对象,就可以实现路径漫游效果:
sgWorld.Navigate.FlyTo(dynamicObject.ID, ActionCode.AC_JUMP);

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java编程笔记,spring boot常用属性汇总
这些属性是否生效取决于对应的组件是否声明为 Spring 应用程序上下文里的 Bean(基本是自动配置的),为一个不生效的组件设置属性是没有用的。 multipart multipart.enabled 开启上传支持(默认:true) multipart.file-size-threshold : 大于该值的文件会被写到磁盘上 multipart.location 上传文件存放位置 multipart.max-file-size 最大文件大小 multipart.max-request-size 最大请求大小 server server.address 服务器地址 server.port 服务器端口 server.context-parameters.[param name] 设置 servlet 上下文参数 server.context-path 应用上下文路径 Jsp-servelt server.jsp-servelt.class-name 针对 jsp 使用的 Servlet 类名(默认:org.apache.jasper.servlet.JspServlet) server....
- 下一篇
区块链开发公司浅析中小型企业为何需要区块链
区块链是科技界的新手,它让整个社区为之倾倒。比特币在2017年最后一个季度迅速崛起,使加密货币成为一个家喻户晓的名字,但它是区块链适应许多领域的用例,这使它成为了金融科技和网络安全公司的宠儿。 大企业和金融机构已经开始在内部开发自己的区块链解决方案,但开发成本通常很高,结果也得不到保证。希望使用区块链但缺乏与大型企业相同资源的中小型企业(SME),可能会依赖提供区块链服务的第三方公司。然而,在一个92%的初创公司倒闭的新兴科技市场,中小企业如何知道哪些区块链公司值得信任呢? 中小企业往往按一定比例扩大规模,扩大规模时,支持企业的产品或服务的外围业务流也需要发展,否则就有可能出现发展瓶颈。多数的解决方案是购买CRM或CMS平台,聘用新员工或与其他服务提供商签约等手段,但区块链可以提供更有效的解决方案。 智能合约就是一种更经济节约的选择,它可以帮助中小企业廉价的保持业务流动的流量。中小企业可以使用区块链来创建,检查和执行用户之间的合同。无论是在开发票,支付薪水,解决利息费用,还是在制定保险政策,处理库存,完成新的交易或任何其他交易活动,智能合约都可帮小微企业降低成本。 智能合约还可以帮助中...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境