SkylineGlobe 7.0版本 矢量数据查询示例代码

在Pro7.0.0和7.0.1环境下测试可用。

<!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>
    <title></title>
    <script type="text/javascript" language="javascript">
        // 执行ExecuteQuery方法
        //zhaohe.2017.09.18.
        function GetFeatureAll() {
            try {
                var strResult = "<table>";
                var sg = CSGWorld();
                //var sg = TerraExplorer3DWindowEx.CreateInstance("TerraExplorerX.SGWorld70");
                var ItemID = sg.ProjectTree.FindItem("_县级城市名称.398244");
                var obj = sg.ProjectTree.GetLayer(ItemID);
                //查询条件
                var attributeFilter = window.document.getElementById("Text1").value;
                //最大查询数
                var numOfFeatures = -1;
                //查询起始feature的id
                var fromDataSourFeaId = "";
                var geometry = sg.Creator.GeometryCreator.CreatePolygonGeometry(null);

                var pIFeatureGroup = obj.ExecuteQuery(attributeFilter, numOfFeatures, fromDataSourFeaId, geometry);
                // 遍历当前图层中符合查询条件的全部对象及其属性
                alert(pIFeatureGroup.Count);
                for (var i = 0; i < pIFeatureGroup.Count; i++) {
                    var pIFeature11 = pIFeatureGroup.Item(i);
                    sg.Navigate.FlyTo(pIFeature11.ID, 0);
                    //alert(pIFeature11.Geometry.Wks.ExportToWKT());
                    //alert(pIFeature11.Geometry.X);
                }
                for (var i = 0; i < pIFeatureGroup.Count; i++) {
                    strResult = strResult + "<tr>";
                    var pIFeature = pIFeatureGroup.Item(i);
                    for (var j = 0; j < pIFeature.FeatureAttributes.Count; j++) {
                        var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);

                        strResult = strResult + "<td style=‘cursor:pointer;‘><a id="+pIFeature.ID+" onclick= \"JJJ\(this.id)\">" + pIFeatureAttribute.Name + "*" + pIFeatureAttribute.Value + "</a></td>";

                    }
                    strResult = strResult + "</tr>";
                }
                strResult = strResult + "</table>";
                window.document.getElementById("result").innerHTML = strResult;
            }
            catch (e)
            {
                alert(e);
            }
        }
        //GetCurrentFeatures 获取当前已经加载的Feature对象
        //zhaohe.2017.09.18.
        function GetCurrentFeatures() {
            var strResult = "<table>";
            var sg = CSGWorld();
            var ItemID = sg.ProjectTree.FindItem("_县级城市名称.398244");
            var obj = sg.ProjectTree.GetLayer(ItemID);
            // 遍历当前图层中已经在地图上加载的全部对象及其属性
            var pIFeatureGroup = obj.FeatureGroups(0).GetCurrentFeatures();
            alert(pIFeatureGroup.Count);
            for (var i = 0; i < pIFeatureGroup.Count; i++) {
                strResult = strResult + "<tr>";
                var pIFeature = pIFeatureGroup.Item(i);
                //sg.Navigate.FlyTo(pIFeature.ID, 0);
                //break;
                for (var j = 0; j < pIFeature.FeatureAttributes.Count; j++) {
                    var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
                    strResult = strResult + "<td>" + pIFeatureAttribute.Name + "*" + pIFeatureAttribute.Value + "</td>";
                }
                strResult = strResult + "</tr>";
            }
            strResult = strResult + "</table>";
            window.document.getElementById("result").innerHTML = strResult;
        }

        //多边形查询
        //zhaohe.2015.06.23.
        function GetFeatureWithPoly() {
            var strResult = "<table>";
            var SGWorld = CSGWorld();
            var ItemID = SGWorld.ProjectTree.FindItem("_县级城市名称.398244");
            var obj = SGWorld.ProjectTree.GetLayer(ItemID);
            // 遍历多边形内选中的对象及其属性
            var qItemID = SGWorld.ProjectTree.GetNextItem("", 10);
            // 在地图上创建一个Polygon,并选中这个对象
            var qobj = SGWorld.ProjectTree.GetObject(qItemID);
            var queryGeometry = qobj.Geometry;
            var resFeatures = obj.ExecuteSpatialQuery(queryGeometry, 1);
            for (var i = 0; i < resFeatures.Count; i++) {
                strResult = strResult + "<tr>";
                var pIFeature = resFeatures.Item(i);
                for (var j = 0; j < pIFeature.FeatureAttributes.Count; j++) {
                    var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
                    strResult = strResult + "<td>" + pIFeatureAttribute.Name + "*" + pIFeatureAttribute.Value + "</td>";
                }
                strResult = strResult + "</tr>";
            }
            strResult = strResult + "</table>";
            window.document.getElementById("result").innerHTML = strResult;
        }

        //属性查询
        //zhaohe.2015.06.23.
        function GetFeatureWithPro() {
            var SGWorld = CSGWorld();
            var ItemID = SGWorld.ProjectTree.FindItem("_县级城市名称.398244");
            var obj = SGWorld.ProjectTree.GetLayer(ItemID);
            var clause = window.document.getElementById("Text1").value;
            if (clause == "") {
                obj.Filter = clause;
                obj.Streaming = 1;
                obj.Refresh();
            }
            else {
                obj.Filter = clause;
                obj.Streaming = 0;
                obj.Refresh();
            }
            GetFeatureAll();
        }

        function JJJ(id)
        {
            var SGWorld = CSGWorld();
            SGWorld.Navigate.FlyTo(id, 0);
        }

        // SGWorld70
        function CSGWorld() {
            try {
                var obj = document.getElementById("SGWorld");
                if (obj == null) {
                    obj = document.createElement(‘object‘);
                    obj.setAttribute("name", "SGWorld");
                    obj.setAttribute("id", "SGWorld");
                    obj.style.height = "1px";
                    obj.style.width = "1px";
                    obj.setAttribute("classid", "CLSID:3A4F919A-65A8-11D5-85C1-0001023952C1");
                    document.body.appendChild(obj);
                }
                return obj;
            }
            catch (e) {
                alert(e);
            }
        }
    </script>
</head>
<body>
    <table>
        <tr>
            <td colspan="4" >
                <input id="Button1" type="button" value="全部Feature" onclick="GetFeatureAll()" />
                <input id="Button3" type="button" value="当前地图上已经加载的对象" onclick="GetCurrentFeatures()" />
                <input id="Button2" type="button" value="空间查询" onclick="GetFeatureWithPoly()" />
            </td>
        </tr>
        <tr>
            <td colspan="4">
                <input id="Text1" type="text" value="OBJECTID < 12" />
                <input id="Button6" type="button" value="属性查询" onclick="GetFeatureWithPro()" />
            </td>
        </tr>
        <tr>
            <td>
                <div id="result">
                </div>
            </td>
        </tr>
    </table>
    <!--<object id="TerraExplorer3DWindowEx" classid="CLSID:3a4f9196-65a8-11d5-85c1-0001023952c1" style="width: 80%; height: 560px;"></object>-->
     <object id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width:500px;height:400px;"></object>
    <object id="TerraExplorerInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" style="width:300px;height:400px;"></object>
</body>
</html>
时间: 2024-10-12 05:19:03

SkylineGlobe 7.0版本 矢量数据查询示例代码的相关文章

Skyline 二次实现单体化模型选择查询示例代码

<!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> <title>3dml的Feature对象选中和隐藏&l

RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V3.0 版本强势发布

继上个版本"RDIFramework.NET V2.9版本"的推出,受到了重多客户的认可与选择,V2.9版本是非常成功与稳定的版本,感谢大家的认可与长期以来的关注与支持.V3.0版本在V2.9版本的基础上做了重大更新,如:新增了"序列管理"."系统参数管理"."查询引擎与定义与管理"."消息集中管理".Web还新增了"MVC版本".代码生成器可以支持WebUI(WebForm.MVC两种

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本强势发布

继上个版本"RDIFramework.NET V2.9版本"的推出,受到了重多客户的认可与选择,V2.9版本是非常成功与稳定的版本,感谢大家的认可与长期以来的关注与支持.V3.0版本在V2.9版本的基础上做了重大更新,如:新增了"序列管理"."系统参数管理"."查询引擎与定义与管理"."消息集中管理".Web还新增了"MVC版本".代码生成器可以支持WebUI(WebForm.MVC两种

社会单位消防安全户籍化管理系统——半自动提交V1.0版本

社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来想写成每天自动化定时执行任务,但使用此小程序的同事已离职,不再使用这项功能了,也就懒得再继续更新维护了. 这个小程序原理很简单,就是利用C#WebBrowser控件进行提交内容. 可能用javascript编写会更快吧,编写的时候,正好在练习使用WebBrowser控件. 编程嘛,在没有强制要求的时

连接Access数据库代码,以及.Net4.0版本的报表查询代码

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 data1; using DA1; using data5; using DA5; namespace 连接仓库.管理员

SkylineGlobe MFC C++ 开发示例代码

SkylineGlobe的SDK底层是跨平台的C++内核,面向不同平台封装原生的API,具有很高的执行效率, 下面是C++二次开发时的示例代码: #import "D:\Program Files (x86)\Skyline\TerraExplorer Pro\TerraExplorerX.dll" no_namespace, named_guids void OnLoadFinished(); void OnFileClosing(); void OnFrame(); void On

《OpenGL ES 2.0 Programming Guide》第12章“最简单的ReadPixels并保存为BMP”示例代码【C语言版】

由于<OpenGL ES 2.0 Programming Guide>原书并没有提供第12章的示例代码,书上的代码也只提到关键的步骤,而网上大多是Android/iOS版本的示例,C/C++的大都基于OpenGL或OpenGL ES 3.0,为了加深理解,遂自己实现了一份C语言版本的,希望能够帮助到同样喜欢OpenGL ES 2.0的同学. 废话不多说,直接上代码 #include "stdafx.h" #include "esUtil.h" #incl

SkylineGlobe Android 开发 面积计算示例代码

SkylineGlobe Android 开发 面积计算示例代码: 如果之前熟悉SkylineGlobe桌面端的二次开发,看这些代码应该不难理解. package com.skyline.terraexplorer.tools; import android.os.Handler; import android.os.Looper; import com.skyline.teapi.*; import com.skyline.teapi.ISGWorld.OnAnalysisProgressLi

星座查询演示示例代码

星座查询演示示例代码: using System; using System.Text; using System.Net; namespace map { class Program { static void Main(string[] args) { string key = "*********************"; string consName="白羊座"; string type="today"; string url = &