zoukankan      html  css  js  c++  java
  • 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>

     

  • 相关阅读:
    Python爬取+BI分析后,微博求助患者的眼泪,全被数据看见了
    BZOJ4321 queue2
    BZOJ4321 queue2
    BZOJ4321 queue2
    Oracle字段根据逗号分割查询数据
    Oracle字段根据逗号分割查询数据
    Oracle字段根据逗号分割查询数据
    Oracle字段根据逗号分割查询数据
    基于Web实现在线绘画拓扑图[GraphEditor]
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/yitianhe/p/2047938.html
Copyright © 2011-2022 走看看