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>