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);
Skyline桌面二次开发之路径漫游(C#)的更多相关文章
- Skyline TerraExplorer -二次开发- 加载外部数据的各种连接串
Skyline 可以连接外部的数据源,包括SQL Server,Oracle ,excel,mySQL,SQlite,WFS....... 连接字符串如下:例如连接shp文件,为“FileName=C ...
- NX二次开发-相对路径环境变量和绝对路径环境变量
相对路径环境变量:${UGII_BASE_DIR}\CaesarToolkits 绝对路径环境变量:D:\Program Files\Siemens\NX 9.0\CaesarToolkits
- [地图SkyLine二次开发]框架(1)
项目介绍: 项目是三维地理信息系统的开发,框架MVC4.0 + EF5.0 + Extjs4.2 + SkyLine + Arcgis,是对SkyLine的二次开发. 项目快结束了,先给大家看一眼效果 ...
- Skyline 7 版本TerraExplorer Pro二次开发快速入门
年底了,给大家整理了一下Skyline 7版本的二次开发学习初级入门教程,献给那些喜欢学习的年轻朋友. 我这整理的是Web控件版本的开发示例,里面页面代码保存成html,都可以直接运行的. 测试使用的 ...
- wpf 客户端【JDAgent桌面助手】开发详解(二)桌面宠物制作详解
目录区域: wpf 客户端[JDAgent桌面助手]业余开发的终于完工了..晒晒截 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]开发详解(一)主窗口 ...
- Google Map和桌面组件 Android开发教程
本文节选于机械工业出版社推出的<Android应用开发揭秘>一 书,作者为杨丰盛.本书内容全面,详细讲解了Android框架.Android组件.用户界面开发.游戏开发.数据存储.多媒体开 ...
- 最好最实用的PHP二次开发教程
◆二次开发 1.什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核. 2.为什么要二次开发? 随着信息化技术 ...
- IBOS云办公系统二次开发之功能介绍(PHP技术)
IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...
- Rational AppScan 标准版可扩展性和二次开发能力简介
下载:IBM® Rational® AppScan 标准版 | Web 应用安全与 IBM Rational AppScan 工具包 获取免费的 Rational 软件工具包系列,下载更多的 R ...
随机推荐
- 使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling
[问题]使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling [原因] 这是因为 Python 包的版本问题,例 ...
- 深入了解 JPA
转载自:http://www.cnblogs.com/crawl/p/7703679.html 前言:谈起操作数据库,大致可以分为几个阶段:首先是 JDBC 阶段,初学 JDBC 可能会使用原生的 J ...
- Yii框架操作数据库的几种方式与mysql_escape_string
一.Yii操作数据库的几种选择 1,PDO方式. $sql = "";//原生态sql语句 xx::model()->dbConnection->createComma ...
- Git----远程仓库之添加远程库02
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub上创建一个Git库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...
- js字符转换为数字
转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类 ...
- 使用cnpm代替npm
淘宝 NPM 镜像 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步. 当前 registry.npm.taobao.or ...
- python变量作用域
[python变量作用域] 几个概念: python能够改变变量作用域的代码段是def.class.lamda. if/elif/else.try/except/finally.for/while 并 ...
- Spring中的注解配置-注入bean
在使用Spring框架中@Autowired标签时默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个.当找不到一个匹配的 Bean ...
- for 续9
-------siwuxie095 for 拾遗: 一: for 语句里,do 后面一般会有括号,有括号就是复合语句, 假如需要用到括号里的变量,就需要 ...
- php 共享内存学习(shmop函数)
问题:希望可以在进程间共享变量,为共享数据提供快速访问 解决方案:除了可以使用APC模块,还可以用shmop或System V共享内存 //创建键 //将一个可访问的文件路径名转换为一个可供 shmo ...