zoukankan      html  css  js  c++  java
  • SkylineGlobe6.5遍历信息树节点方法

    //-------------------
    //searchGeometries
    function searchGeometries2(parentNode, callbackFunc) {
        SGWorld.ProjectTree.EnableRedraw(0);
        searchGeometriesLeaf2(parentNode, callbackFunc);
        SGWorld.ProjectTree.EnableRedraw(1);
    }
    //-------------------
    // searchGeometries
    function searchGeometriesLeaf2(parentNode, callbackFunc) {
    
        if (SGWorld.ProjectTree.IsLayer(parentNode))  // Layer
        {
            var layer = SGWorld.ProjectTree.GetLayer(parentNode);
            var featureGroups = layer.FeatureGroups;
            for (var i = 0; i < featureGroups.Count; i++) // Traverse all sub-layers
            {
                var featureGroup = featureGroups.Item(i);
                var altitudeType = AltitudeMethodToAltitudeType(featureGroup.GetProperty("Altitude Method"));
                var features = featureGroup.Features;
                for (var j = 0; j < features.Count; j++) {
                    var ret;
                    if (featureGroup.GeometryType != 0)
                        ret = callbackFunc(features.Item(j).Geometry, featureGroup.GeometryType, altitudeType);
                    else {
                        if (features.Item(j).Geometry.GeometryType == 0) // Point
                        {
                            var position = SGWorld.Creator.CreatePosition(features.Item(j).Geometry.X, features.Item(j).Geometry.Y, features.Item(j).Geometry.Z);
                            ret = callbackFunc(position, featureGroup.GeometryType, altitudeType);
                        }
                    }
                    if (!ret)
                        return;
                }
            }
        }
        else {
            var node = SGWorld.ProjectTree.GetNextItem(parentNode, 11);
            while (node != "") {
                if (SGWorld.ProjectTree.IsGroup(node) || SGWorld.ProjectTree.IsLayer(node))
                    searchGeometriesLeaf2(node, callbackFunc);
                else {
                    var Object = SGWorld.Creator.GetObject(node);
                    if (Object != null) {
                        var altitudeType = Object.Position.AltitudeType;
                        var ret;
                        if (Object.ObjectType == 1 || Object.ObjectType == 2)
                           ret = callbackFunc(Object.Geometry, Object.ObjectType, altitudeType);
                        else
                            ret = callbackFunc(Object.Position, Object.ObjectType, altitudeType);
    
                        if (!ret)
                            return;
                    }
                }
    
                node = SGWorld.ProjectTree.GetNextItem(node, 13);
            }
        }
    }
  • 相关阅读:
    IE 8兼容:<meta http-equiv="X-UA-Compatible" content="IE=edge" /> X-UA-Compatible的解释
    点击下载,下载图片
    修改输入框placeholder文字默认颜色-webkit-input-placeholder
    rest_framework目录
    Django目录
    python基础内容目录
    hadoop伪分布式搭建
    通过ldap验证svn服务
    LDAP目录服务
    Python基础之字符串拼接简单介绍
  • 原文地址:https://www.cnblogs.com/yitianhe/p/3334734.html
Copyright © 2011-2022 走看看