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);
}
}
}
SkylineGlobe6.5遍历信息树节点方法的更多相关文章
- 遍历树节点(多层)的方法(java)
前序遍历,后序遍历,广度遍历,深度遍历,遍历一级节点.以及按钮如何响应点击事件. import java.awt.*; import java.awt.event.*; import java.uti ...
- 先序遍历DOM树的5种方法
DOM树由文档中的所有节点(元素节点.文本节点.注释节点等)所构成的一个树结构,DOM树的解析和构建是浏览器要实现的关键功能.既然DOM树是一个树结构,那么我们就可以使用遍历树结构的相关方法来对DOM ...
- JPA,EclipseLink 缓存机制学习(一) 树节点搜索问题引发的思考
最近在项目在使用JPA+EclipseLink 的方式进行开发,其中EclipseLink使用版本为2.5.1.遇到一些缓存方面使用不当造成的问题,从本篇开始逐步学习EclipseLink的缓存机制. ...
- BOM的节点方法和属性
一.HTML DOM >>>>>>>>>>>>>>>>>>>>具体可以参考W3S ...
- 【zTree】zTree展开树节点
今天在做zTree树的时候想着将第一级tree展开,于是利用下面方法: /** * 展开树节点的第一层 */ function openFirstTreenode(){ // 获取树对象 var tr ...
- JPA,EclipseLink 缓存机制学习——树节点搜索问题引发的思考
最近在项目在使用JPA+EclipseLink 的方式进行开发,其中EclipseLink使用版本为2.5.1.遇到一些缓存方面使用不当造成的问题,从本篇开始逐步学习EclipseLink的缓存机制. ...
- jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
http://www.poluoluo.com/jzxy/201312/253059.html 在这个sprint中,因为要写前端UI,所以用到了jQuery,但是jQuery在向上遍历DOM树的AP ...
- php 两种获取分类树的方法
php 两种获取分类树的方法 1. /** * 获取分类树 * @param array $array 数据源 * @param int $pid 父级ID * @param int $level 分 ...
- 拷贝和遍历DOM树
一.浅拷贝: 拷贝就是复制,就相当于把一个对象中的所有内容,复制一份给另一个对象,直接复制, 或者说,就是把一个对象的地址给了另外一个对象,他们的指向相同,两个对象之间有相同的属性或者方法,都可以使用 ...
随机推荐
- web新手——新闻列表这样写不容易出错
1.先写结构 a.如果列表没有时间 结构为:<li><a>新闻内容</a></li> b.如果列表有时间 结构为:<li>&l ...
- vue项目导入外部css样式和js文件
<template> <div id="app" > </div> </template> <script src=" ...
- Chrome调试本地文件无法使用window.opener对象进行窗口间值传递
今天在百度BAE上建了个应用,svn上传后发现页面间互调有些问题,几经查询发现: (1)IE下正常的window.opener.object1.object2页面间对象访问方法在Chrome下不能使用 ...
- [Android GMS 认证] keystore/keymaster/Attestation的问题
首先确定写入key,操作如下: 检查 /persist/data/sfs 目录下是否有key文件存在 adb shell ls -la /persist/data/sfs 做过key prov ...
- [20170825]不启动监听远程能连接数据库吗2.txt
[20170825]不启动监听远程能连接数据库吗2.txt --//曾经写过一篇不启动监听连接数据库的帖子:http://blog.itpub.net/267265/viewspace-1816211 ...
- 性能测试—JMeter 常用元件(四)
<零成本web性能测试>第三章 Web性能测试脚本录制与开发中JMeter常用测试元件 测试计划描述了JMeter运行时将会执行的一系列步骤,一个完整的测试计划包含一个或多个线程组.逻辑控 ...
- Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空
使用Apache Commons FileUpload组件上传文件时总是返回null,调试发现ServletFileUpload对象为空,在Spring Boot中有默认的文件上传组件,在使用Serv ...
- vi 复制或剪切多行超级强大方法
同一个文件:光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a, 'b co 'c 把 co 改成 m 就成剪切了多个文件:在文件一: 光标移到起始行,输入ma ...
- V4L2 driver -整体架构
我的uvc开源地址:gitee-uvc 字符设备驱动程序核心:V4L2本身就是一个字符设备,具有字符设备所有的特性,暴露接口给用户空间. V4L2 驱动核心:主要是构建一个内核中标准视频设备驱动的框架 ...
- 进入正在运行的 docker 容器(docker container)
在使用 docker 容器的时候,我们总会想看看容器内部长什么样子:我们使用 docker exec 命令可以满足我们的期望: ➜ compose docker exec --help Usage: ...