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二次开发入门——初级(四)相关推荐

  1. Revit二次开发入门秘籍 01如何入门

    关于入门 我想在开始学习之前大家应该更需要知道如何入门,对比一下我们在学校的学习,我们需要书.老师-书上呢,是有所有的知识点,有重要的,有不重要的,而老师呢,会知道哪些是重点,也就是我们考试要考的,教 ...

  2. Revit二次开发入门捷径_升维学习、降维打击

    问题 入门Revit二次开发有捷径吗? 答案 量子力学:有也没有.(皮一下:叠加态) 没有:目的地只有一个,路只有一条,学习没有捷径. 有:虽然路只有一条,但我们可以借助交通工具,缩短时间就是捷径. ...

  3. Flow-3D二次开发入门 教程

    Flow-3D二次开发入门 教程 加载体热源 (默认的,没有任何热源) General Physics Fluid设定 Meshing & Geometry Geometry meshing ...

  4. Revit二次开发入门相关安装和配置

    Revit二次开发入门相关安装和配置 最近一周,由于项目需要,需要做一个基于Revit的二次开发项目,也特意初步自学了Revit二次开发的相关知识.由于学习时间过短,了解到的只是皮毛,所有还希望大家能 ...

  5. Revit二次开发入门关键

    学会学习 什么是学习? 学得:通过学,获得的知识. 假会!眼睛:我会了!脑子:我会了!手:不,你不会!!! 习得:通过练习,获得的知识. 真会!手:我会了!基本不用经过太多的思考! 没意识到:好运~! ...

  6. 安信可PB-03蓝牙模组入门之旅 二:SDK二次开发入门,认识架构,开始点亮一盏LED。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 安信可PB-03蓝牙模组入门之旅一:Windows SDK二次 ...

  7. Revit二次开发入门教程一(工具篇)

    对BIM开发感兴趣的读者可以关注我的BIM开发系列教程 什么是BIM开发?这篇文章可以告诉你 Revit二次开发教程提纲 Revit二次开发编程入门一(工具篇) 前言 BIM诞生的背景 Revit在B ...

  8. 【区块链开发入门】(四) Truffle详解篇2

    由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...

  9. 游戏开发入门(四)逻辑与脚本开发

    视频链接:游戏开发入门(四)逻辑与脚本开发(8节课 时常:约2小时30分钟 第4节看不了) 笔记与总结(请先学习视频内容): 1.逻辑系统目的 实现策划的设计文档 构建游戏玩法 实现程序与玩家交互 2 ...

  10. UG/NX二次开发入门手册

    本文文字版地址:http://www.cnblogs.com/begtostudy/archive/2010/11/19/1881953.html 另外,推荐博客:http://blog.csdn.n ...

最新文章

  1. XP的DNS服务器(BIND)配置
  2. boost::mpl模块实现push_back相关的测试程序
  3. php 蓝奏网盘上传文件,蓝奏云_文件上传_API
  4. android+六边形布局,android – 带六边形触摸区域的六角形按钮
  5. 比特币价格疯涨!特斯拉或将支持比特币付款
  6. cocos2dx 学习笔记5 关于屏幕大小的问题
  7. 安卓编译安装python_安卓源码编译环境搭建
  8. LeetCode 38外观数列
  9. 怎样开图纸便宜_在县城开一家儿童乐园怎么样?开多大面积合适?投资需要多少钱?...
  10. java软件测试技术栈
  11. 如何购买阿里云域名教程(域名购买+配置)~
  12. nexrcloud 自动上传_Nextcloud默认文件的自定义
  13. 计算机主机是几几年的怎么查,怎样查询电脑上次开机时间_电脑开机时间查询方法-系统城...
  14. Win8各国语言包的安装,让系统变成你想要的语言版,带你体验不一样的输入法
  15. MAC系统安装JDK和环境变量配置
  16. VIP会员积分管理系统c语言,路西牌会员管理系统。
  17. 采用CAD刀模插件(飞狼刀模工具箱)批理倒圆角
  18. 华为机试 - 最大矩阵和
  19. Failed to open \EFI\BOOT\mmx64.efi问题解决
  20. 如何修改美食大战老鼠服务器,《美食大战老鼠》联运区组停止运营公告

热门文章

  1. n阶Hilbert矩阵的Gauss消去法求解
  2. getParameterValues 和 getParameter区别
  3. Android移动应用基础教程知识整理
  4. APISpace 全国行政区查询API
  5. C语言函数嵌套学习实例
  6. 自制麦克纳姆轮遥控小车
  7. [翻译] (黑苹果)笔记本电脑原生电源管理指南 [Guide] Native Power Management for Laptops
  8. SQL Server~T-SQL编程基础
  9. android toast显示时间,Android Toast自定义显示时间
  10. SecureCRT配置自动保存日志(实用)