SkyLine_BS_二次开发_创建对象
来源:互联网 发布:网络作家梦游美利坚 编辑:程序博客网 时间:2024/06/07 15:11
1. 介绍
在skyline中,创建对象包含三类对象,分别是文字、图片和模型。文字内容支持长字符、段落,图片类型包括大多数常用的图片格式(bmp、gif、jpg、jpeg、png、ico),模型类型包括一般的三维模型和点云(cpt)。一般模型包括Derect的X模型(X、XPC、XPL、XPL2)文件、FLT的flt和fpc文件、Google的dae文件以及3D Studio的3ds格式。
2. 方法
Skyline加入创建的对象分别对应三个不同的方法,CreateTextLable、CreateImageLable、CreateModel,三个方法的主要参数为:创建对象的位置信息IPosition、对象内容或位置、创建对象的风格LabelStyle、以及模型的比例因子Scale和类型信息ModelType。
3. 示例代码
3.1. 创建文字对象
/****分配创建对象方法,增加相应监听**/function GeoCreate() { //添加左键按下监听 SGWorld65.AttachEvent("OnLButtonDown", DrawPolyLButtonDown); //添加右键监听 SGWorld65.AttachEvent("OnRButtonUp", DrawPolyRButtonUp); //设置鼠标输入状态 SGWorld65.Window.SetInputMode(1);}/****左键点击DOWN事件**/function DrawPolyLButtonDown(Flags, X, Y) { var CursorCoord = SGWorld65.Window.pixelToWorld(X, Y); if(CursorCoord != null){ //添加文本标签 AddTextLable(CursorCoord); }}/****添加文字标签**/function AddTextLable(CursorCoord){ //创建组 gids = CreateTempGroup("labelgroup"); //创建鼠标位置 var CursorPosition = SGWorld65.Creator.CreatePosition(CursorCoord.Position.X, CursorCoord.Position.Y, 0, 2, 0, 0, 0, 0); //创建标签风格 var lableStyle = SGWorld65.Creator.CreateLabelStyle(0); //创建文本标签 SGWorld65.Creator.CreateTextLabel(CursorPosition,"文字标签",lableStyle,gids,"labelgroup")}/****右键点击UP事件**/function DrawPolyRButtonUp(Flags, X, Y) { //设置恢复鼠标状态 SGWorld65.Window.SetInputMode(0); //去除监听 SGWorld65.DetachEvent("OnLButtonDown", DrawPolyLButtonDown); SGWorld65.DetachEvent("OnRButtonUp", DrawPolyRButtonUp);}/****创建组**/function CreateTempGroup(groupname) { //查找组名,得到对应的组ID var gid = SGWorld65.ProjectTree.FindItem(groupname); //如果无对应组名,组ID为空 if (gid == "") { //新建该组名的组,得到组ID gid = SGWorld65.ProjectTree.CreateLockedGroup(groupname, ""); } //返回组ID return gid;}
3.2. 创建图像对象
/** * *分配创建对象方法,增加相应监听 * */function GeoCreate(value) { //添加左键按下监听 SGWorld65.AttachEvent("OnLButtonDown", DrawPolyLButtonDown); //添加右键监听 SGWorld65.AttachEvent("OnRButtonUp", DrawPolyRButtonUp); //设置鼠标输入状态 SGWorld65.Window.SetInputMode(1);}/** * *左键点击DOWN事件 * */function DrawPolyLButtonDown(Flags, X, Y) { var CursorCoord = SGWorld65.Window.pixelToWorld(X, Y); if(CursorCoord != null){//添加图片标签 AddImageLable(CursorCoord); }}/** * *添加图像标签 * */function AddImageLable(CursorCoord){ gids = CreateTempGroup("图像标签"); //创建鼠标位置 var CursorPosition = SGWorld65.Creator.CreatePosition(CursorCoord.Position.X, CursorCoord.Position.Y, 0, 2, 0, 0, 0, 0); var lableStyle = SGWorld65.Creator.CreateLabelStyle(0); //创建图片SGWorld65.Creator.CreateImageLabel(CursorPosition,"D:/imagePath/image.png",lableStyle,gids,"图像标签");}/** * *右键点击UP事件 * */function DrawPolyRButtonUp(Flags, X, Y) { //设置恢复鼠标状态 SGWorld65.Window.SetInputMode(0); //去除监听 SGWorld65.DetachEvent("OnLButtonDown", DrawPolyLButtonDown); SGWorld65.DetachEvent("OnRButtonUp", DrawPolyRButtonUp);}/** * *创建组 * */function CreateTempGroup(groupname) { //查找组名,得到对应的组ID var gid = SGWorld65.ProjectTree.FindItem(groupname); //如果无对应组名,组ID为空 if (gid == "") { //新建该组名的组,得到组ID gid = SGWorld65.ProjectTree.CreateLockedGroup(groupname, ""); } //返回组ID return gid; }
3.3. 创建模型对象
/** * *分配创建对象方法,增加相应监听 * */function GeoCreate() { //添加左键按下监听 SGWorld65.AttachEvent("OnLButtonDown", DrawPolyLButtonDown); //添加右键监听 SGWorld65.AttachEvent("OnRButtonUp", DrawPolyRButtonUp); //设置鼠标输入状态 SGWorld65.Window.SetInputMode(1);}/** * *左键点击DOWN事件 * */function DrawPolyLButtonDown(Flags, X, Y) { var CursorCoord = SGWorld65.Window.pixelToWorld(X, Y); if(CursorCoord != null){ //添加模型AddModel(CursorCoord); }}/** * *添加模型 * */function AddModel(CursorCoord){ gids = CreateTempGroup("模型"); //创建鼠标位置 var CursorPosition = SGWorld65.Creator.CreatePosition(CursorCoord.Position.X, CursorCoord.Position.Y, 10, 2, 0, 0, 0, 0); //得到程序启动路径 var Propath = SGWorld65.Application.ExecutablePath; //由启动路径得到shp文件路径 var shpPath = Propath + "Tools\\Data-Library\\3D-Objects\\Helicopters\\" + "ah64.xpc"; //创建模型 SGWorld65.Creator.CreateModel(CursorPosition,shpPath,1,0,gids,"模型")}/** * *右键点击UP事件 * */function DrawPolyRButtonUp(Flags, X, Y) { //设置恢复鼠标状态 SGWorld65.Window.SetInputMode(0); //去除监听 SGWorld65.DetachEvent("OnLButtonDown", DrawPolyLButtonDown); SGWorld65.DetachEvent("OnRButtonUp", DrawPolyRButtonUp);}/** * *创建组 * */function CreateTempGroup(groupname) { //查找组名,得到对应的组ID var gid = SGWorld65.ProjectTree.FindItem(groupname); //如果无对应组名,组ID为空 if (gid == "") { //新建该组名的组,得到组ID gid = SGWorld65.ProjectTree.CreateLockedGroup(groupname, ""); } //返回组ID return gid; }
4. 运行效果
4.1. 创建文本对象
4.2. 创建图像对象
4.3. 创建模型对象
0 0
- SkyLine_BS_二次开发_创建对象
- SkyLine_BS_二次开发_创建对象
- SkyLine_BS_二次开发_WMS服务加载
- phpcms二次开发_创建功能模块
- phpcms二次开发_创建功能模块
- JavaScript对象_创建对象
- C# NX二次开发_创建圆柱体并进行编辑
- Revit二次开发_在Revit启动后创建Tab
- wps二次开发无法创建对象wps.application的解决方案
- 创建对象_你只要看懂这篇文章
- Revit二次开发--过滤对象
- fast_nginx_module二次开发_结合imageMagick
- [Javascript学习记录]1.对象_创建对象的方法
- 面向对象_创建对象做了哪些事情?
- Java设计模式_创建型_原型模式_复制对象及状态
- 黑马程序员_对象在内存中创建过程
- StudyJams-第07课_面向对象和创建实例
- [设计模式]SINGLETON(单件)_对象创建型模式
- 1004-史丰收速算
- Java的一些基本问题的总结
- 14. Longest Common Prefix
- 使用Enterprise Architect画UML类图
- ThreadPoolExecutor机制
- SkyLine_BS_二次开发_创建对象
- mybatis-generator 代码自动生成工具
- python代码覆盖工具Coverage.py
- iOS的中文转码以及带各种符号的字符串的转码
- 对象迁移空间对索引状态的影响
- Java中堆内存和栈内存详解
- 老左博客-前端资源-表格样式
- c#中控件使用时属性设置记录集
- C++时间运用相关