Skyline TEP5.1.3二次开发入门——初级(四)
6.4 IInformationTree5
主要用来组织管理信息树中的全部对象(包括组和图层等对象),实现对象遍历、矢量数据导入、对象删除等功能;
CreateGroup |
在信息树窗口中创建一个新组; |
CreateLockedGroup |
创建一个锁定组。当组被锁定的时候,TerraExplorer View用户不能展开该组; |
RenameGroup |
重命名一个组; |
ExpandGroup |
展开组或者折叠该组; |
GetItemName |
使用ItemID获取该子项的名称,TerraExplorer Viewer支持本方法; |
DeleteItem |
删除树中的一个子项; |
SetParent |
移动条目到不同的组; |
GetNextItem |
调用本方法可以获得ItemID特定关联(下一级,上一级等)的子项,TerraExplorer Viewer支持本方法; |
FindItem |
在指定的路径下查找子项(例如:”Cities\Boston”) ,TerraExplorer Viewer 支持此方法; |
GetTerraObjectID |
GetTerraObjectID 使用ItemID去获取真实对象的与树节点相关联的ObjectID号,TerraExplorer Viewer支持本方法; |
SetGroupColor |
SetGroupColor方法指定一个颜色到特定的组,仅当该组被锁的时候,颜色可见; |
GetGroupColor |
获得一个组的颜色; |
EnableRedraw |
本方法允许在信息树中重画或者防止被重画; |
IsGroup |
IsGroup方法决定信息树条目是否是一个组,TerraExplorer Viewer支持本方法; |
SetGroupVisibility |
本方法在一个组中设置所有的对象可见或不可见,TerraExplorer Viewer支持本方法; |
SortGroup |
根据特定的排序类型(A-Z,Z-A,类型)对组中的子项进行排序; |
SetGroupLocation |
确定特定组的位置参数; |
GetGroupLocation |
本方法获得以下的参数,它定义了特定组的的位置参数; |
CreateLockedGroupEx |
创建一个锁定组,并且设置信息树中组的符号; |
SetActivationCode |
当点击被锁的组的符号时,确定这个默认的激活动作执行; |
GetActivationCode |
获得组的激活行为的代号; |
SetClientData |
发送一个XML字符串来描述组的属性数据,这些信息存储在组的全局空间中; |
GetClientData |
该方法获得描述组属性数据的XML字符串。TerraExplorer用这个属性去存储加载GIS图层的组的属性信息; |
GetObject |
获取三维场景中的对象; |
SetParentEx |
移动子节点到一个不同的组,并且为这个节点返回新的ItemID; |
ReloadLayer |
重新加载矢量图层数据; |
EditItem |
编辑对象并打开属性栏; |
EditItems |
编辑多个对象并打开属性栏; |
LoadFlyLayer |
装载一个Fly文件或者KML文件到当前的项目中,所有来自Fly文件的对象包括位置、路线和超链接都被添加进来; |
IsGroupEx |
IsGroup方法用来判断信息树中的条目是否是一个组。如果是组,还可以判断该组是否被锁,TerraExplorer Viewer支持本方法; |
GetGroupVisibility |
返回组中对象的可见状态(全部可见,全部不可见,部分可见部分不可见); |
SaveFlyLayer |
保存特定的组到一个fly文件中;“Skyline\TerraExplorer ”; |
CreateLayer |
在信息树中创建一个层对象; |
EditItemEx |
进入编辑模式,可进行高级编辑设置(是否打开属性框等); |
EndEdit |
结束编辑模式; |
SetClientDataEx |
存储描述特定组的文本字符串; |
GetClientDataEx |
获取特定组命名空间中的字符串; |
GetLayer |
根据GroupID获取ILayer5的接口; |
SetVisibility |
设置信息树子项的是否可见,TerraExplorer Viewer支持本方法; |
GetVisibility |
获取信息树子项的是否可见状态, TerraExplorer Viewer支持本方法; |
GetObjectEx |
获取对象的接口,根据ItemID和要获取的对象的类型名; |
LoadFlyLayerEx |
装载fly文件到当前工程中,所有的对象被添加到指定的组中,返回新创建组的ItemID; |
LockGroup |
设置组的折叠状态,当锁定时 View将无法展开该组; |
SelectItem |
选择信息树子项; |
IsLayer |
判断选定对象是否是图层对象; |
代码示例:
【C#】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TerraExplorerX;
namespace ExCodeIInforTree
{
public partial class Form1 : Form
{
private TerraExplorer TE;
private ITerraExplorer51 TE51;
private IObjectManager51 IObjectManager;
private IPlane5 IPlane;
private IInformationTree5 IInformationTree;
public Form1()
{
InitializeComponent();
this.TE = new TerraExplorerClass();
this.TE51 = (ITerraExplorer51)TE;
IObjectManager = (IObjectManager51)TE;
this.IPlane = (IPlane5)TE;
IInformationTree = (IInformationTree5)TE;
TE51.Load(Application.StartupPath + "\\Default.fly");
}
private void btnStart_Click(object sender, EventArgs e)
{
int gid = IInformationTree.FindItem("Skyline");
int fcItemID = IInformationTree.GetNextItem(gid, ItemCode.CHILD);
string fcName = null;
while (fcItemID != 0)
{
fcName = IInformationTree.GetItemName(fcItemID);
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = fcName;
myTreeNode.Tag = fcItemID;
this.treeView1.Nodes.Add(myTreeNode);
fcItemID = IInformationTree.GetNextItem(fcItemID, ItemCode.NEXT);
}
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
string objectid = IInformationTree.GetTerraObjectID(Convert.ToInt32(e.Node.Tag));
IPlane.FlyToObject(objectid, ActionCode.AC_FLYTO);
}
}
}
【javascript】
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="IInformationTree5.aspx.cs" Inherits="ExCode_IInformationTree5" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Skyline二次开发教程【配套示例】</title>
<script type ="text/javascript">
function Init() {
var TE = _$SGCreateTEObj();
var ITerraExplorer = TE.interface("ITerraExplorer51");
ITerraExplorer.Load("D:\\2010售前演示系统\\WPFA-DEMO\\WPFA-DEMO\\bin\\Debug\\FLY\\Default.fly");
}
function ShowList() {
var IInformationTree = TE.interface("IInformationTree5");
var gid = IInformationTree.FindItem("Skyline");
var fcItemID = IInformationTree.GetNextItem(gid, 11);
var fcName = null;
while (fcItemID != 0)
{
var butt = document.createElement('BUTTON');
var pobj = window.document.getElementById("Title");
pobj.appendChild(butt);
var buttvalue = document.createTextNode(fcItemID);
butt.appendChild(buttvalue);
butt.onclick = function f2() {
var IPlane = TE.interface("IPlane5");
var objectid = IInformationTree.GetTerraObjectID(this.value);
IPlane.FlyToObject(objectid, 0);
}
fcItemID = IInformationTree.GetNextItem(fcItemID, 13);
}
}
//------------------------------------------------------------
// 创建三维对象 赵贺 2009.01.25.
//------------------------------------------------------------
function _$SGCreateTEObj() {
var obj = window.document.getElementById("TE");
if (obj == null) {
obj = document.createElement('object');
document.body.appendChild(obj);
obj.name = "TE";
obj.id = "TE";
obj.classid = "CLSID:3a4f9191-65a8-11d5-85c1-0001023952c1";
}
return obj;
}
//------------------------------------------------------------
// 定义集合参数 赵贺 2009.01.25.
//------------------------------------------------------------
function _$SGWorldParam() {
this.x = 0;
this.y = 0;
this.h = 0;
this.yaw = 0;
this.pitch = 0;
this.roll = 0;
this.OID = 0;
this.OType = 0;
}
</script>
<script type ="text/vbscript">
'------------------------------------------------------------
' IPlane GetPosition 赵贺 2009.01.25.
'------------------------------------------------------------
sub GetPosition(param)
Dim dx,dy,dh,dyaw,dpitch,droll,dcyaw,dcpitch
Dim IPlane
Set IPlane = TE.interface("IPlane5")
IPlane.GetPosition dx,dy,dh,dyaw,dpitch,droll,dcyaw,dcpitch
param.x = dx
param.y = dy
param.h = dh
param.yaw = dyaw+dcyaw
param.pitch = dpitch+dcpitch
param.roll = droll
param = dh
end sub
</script>
</head>
<body onload = "Init()">
<form id="form1" runat="server">
<div id = "Title">
<input id="Button1" type="button" value="列表显示" onclick = "ShowList()" />
</div>
<div id="Main">
<object id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1"
width="521" height="521">
</object>
</div>
</form>
</body>
</html>
转载于:https://www.cnblogs.com/yitianhe/archive/2011/05/16/2047938.html
Skyline TEP5.1.3二次开发入门——初级(四)相关推荐
- Revit二次开发入门秘籍 01如何入门
关于入门 我想在开始学习之前大家应该更需要知道如何入门,对比一下我们在学校的学习,我们需要书.老师-书上呢,是有所有的知识点,有重要的,有不重要的,而老师呢,会知道哪些是重点,也就是我们考试要考的,教 ...
- Revit二次开发入门捷径_升维学习、降维打击
问题 入门Revit二次开发有捷径吗? 答案 量子力学:有也没有.(皮一下:叠加态) 没有:目的地只有一个,路只有一条,学习没有捷径. 有:虽然路只有一条,但我们可以借助交通工具,缩短时间就是捷径. ...
- Flow-3D二次开发入门 教程
Flow-3D二次开发入门 教程 加载体热源 (默认的,没有任何热源) General Physics Fluid设定 Meshing & Geometry Geometry meshing ...
- Revit二次开发入门相关安装和配置
Revit二次开发入门相关安装和配置 最近一周,由于项目需要,需要做一个基于Revit的二次开发项目,也特意初步自学了Revit二次开发的相关知识.由于学习时间过短,了解到的只是皮毛,所有还希望大家能 ...
- Revit二次开发入门关键
学会学习 什么是学习? 学得:通过学,获得的知识. 假会!眼睛:我会了!脑子:我会了!手:不,你不会!!! 习得:通过练习,获得的知识. 真会!手:我会了!基本不用经过太多的思考! 没意识到:好运~! ...
- 安信可PB-03蓝牙模组入门之旅 二:SDK二次开发入门,认识架构,开始点亮一盏LED。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 安信可PB-03蓝牙模组入门之旅一:Windows SDK二次 ...
- Revit二次开发入门教程一(工具篇)
对BIM开发感兴趣的读者可以关注我的BIM开发系列教程 什么是BIM开发?这篇文章可以告诉你 Revit二次开发教程提纲 Revit二次开发编程入门一(工具篇) 前言 BIM诞生的背景 Revit在B ...
- 【区块链开发入门】(四) Truffle详解篇2
由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...
- 游戏开发入门(四)逻辑与脚本开发
视频链接:游戏开发入门(四)逻辑与脚本开发(8节课 时常:约2小时30分钟 第4节看不了) 笔记与总结(请先学习视频内容): 1.逻辑系统目的 实现策划的设计文档 构建游戏玩法 实现程序与玩家交互 2 ...
- UG/NX二次开发入门手册
本文文字版地址:http://www.cnblogs.com/begtostudy/archive/2010/11/19/1881953.html 另外,推荐博客:http://blog.csdn.n ...
最新文章
- XP的DNS服务器(BIND)配置
- boost::mpl模块实现push_back相关的测试程序
- php 蓝奏网盘上传文件,蓝奏云_文件上传_API
- android+六边形布局,android – 带六边形触摸区域的六角形按钮
- 比特币价格疯涨!特斯拉或将支持比特币付款
- cocos2dx 学习笔记5 关于屏幕大小的问题
- 安卓编译安装python_安卓源码编译环境搭建
- LeetCode 38外观数列
- 怎样开图纸便宜_在县城开一家儿童乐园怎么样?开多大面积合适?投资需要多少钱?...
- java软件测试技术栈
- 如何购买阿里云域名教程(域名购买+配置)~
- nexrcloud 自动上传_Nextcloud默认文件的自定义
- 计算机主机是几几年的怎么查,怎样查询电脑上次开机时间_电脑开机时间查询方法-系统城...
- Win8各国语言包的安装,让系统变成你想要的语言版,带你体验不一样的输入法
- MAC系统安装JDK和环境变量配置
- VIP会员积分管理系统c语言,路西牌会员管理系统。
- 采用CAD刀模插件(飞狼刀模工具箱)批理倒圆角
- 华为机试 - 最大矩阵和
- Failed to open \EFI\BOOT\mmx64.efi问题解决
- 如何修改美食大战老鼠服务器,《美食大战老鼠》联运区组停止运营公告
热门文章
- n阶Hilbert矩阵的Gauss消去法求解
- getParameterValues 和 getParameter区别
- Android移动应用基础教程知识整理
- APISpace 全国行政区查询API
- C语言函数嵌套学习实例
- 自制麦克纳姆轮遥控小车
- [翻译] (黑苹果)笔记本电脑原生电源管理指南 [Guide] Native Power Management for Laptops
- SQL Server~T-SQL编程基础
- android toast显示时间,Android Toast自定义显示时间
- SecureCRT配置自动保存日志(实用)