现在的位置: 首页 > 综合 > 正文

Skyline TEP5.1.3二次开发入门——初级(四)

2012年05月25日 ⁄ 综合 ⁄ 共 6885字 ⁄ 字号 评论关闭

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>

 

 

抱歉!评论已关闭.