运行范例

描述

该范例展示如何控制模型对象隐藏的功能。如果示例无法正常运行示例时请检查是否已开启iServer服务,并根据实际情况调整调用的场景路径。

代码 (文件格式为 UTF-8)


    <html>
    <head>
        <meta http-equiv="x-ua-compatible" content="IE=8" />
        <title></title>
        <!--添加引用-->
        <script type="text/javascript" src="SuperMap.Include.js"></script>
        <script type="text/javascript">

            var scene = null;
            var sceneControl = null;
            var layer3D = null;
            var trackingLayer = null;
            var selection3Ds = null;
            var htmlUrl = document.location.host;

            //判断网页的打开方式是本地打开还是通过网络打开
            //不同的打开方式url赋值不同
            if (htmlUrl === "") {
                htmlUrl = "http://localhost:8090";
            } else {
                htmlUrl = "http://" + htmlUrl;
            }

            function onPageLoad() {
                try {
                    sceneControl = new SuperMap.Web.UI.Controls.SceneControl($get("sceneControlDiv"), initCallback, failedCallback);
                } catch (e) {
                    if (e.name === SuperMap.Web.Realspace.ExceptionName.PlugInNotInstalled) {
                        //判断插件
                        var url = htmlUrl + "/iserver/iClient/for3D/plugin/Setup.exe";
                        document.write("<a href='" + url + "'>未检测到 SuperMap iClient3D for  Plugin 插件,请单击此处下载并安装插件。。</a>");
                        return;
                    } else if (e.name === SuperMap.Web.Realspace.ExceptionName.BrowserNotSupport) {
                        //判断浏览器兼容性
                        document.write("<p>S6R for RealspuperMap iClient ace目前只支持IE浏览器。</p>");
                        return;
                    }
                    else {
                        //如果是其他异常,则抛出。
                        alert(e.message);
                    }
                }
            }

            //控件初始化成功后的回调函数,进行场景和跟踪图层的初始化。
            function initCallback() {
                //获取场景对象。
                scene = sceneControl.get_scene();
                //获取跟踪图层对象。
                trackingLayer = scene.get_trackingLayer3D();
                openScene();
            }

            //控件初始化失败后的回调函数。
            function failedCallback() {
                alert("控件初始化失败。");
            }

            //加载测试用场景
            function openScene() {
                var sceneServicesList = sceneControl.get_sceneServicesList();
                //测试用的场景地址,根据需要修改。
                var testUrl = "http://localhost:8090/iserver/services/3D-sample/rest/realspace";
                scene.open(testUrl, "scene_house");
            }

            function setVisibleFalse() {
                var layer3Ds = scene.get_layer3Ds();
                layer3D = layer3Ds.get_item(0);
                selection3Ds = scene.findSelection3Ds(true);
                if (selection3Ds.length === 0) {
                    alert("没有对象被选中。");
                    return;
                }
                if (selection3Ds !== null) {
                    var id = selection3Ds[0].get_item(0);
                    selection3Ds[0].removeAll();
                    var feature3D = layer3D.findFeature3DByID(id);
                    feature3D.set_isVisible(false);

                } else {
                    alert("没有对象被选中。");
                }
            }
        </script>
    </head>
    <body onload="onPageLoad();">
        <div id="sceneControlDiv" style="border: 3px solid #c1c1c1; position: absolute;top: 5px;bottom:100px;width: 100%&">
        </div>
        <div style="position: absolute;left: 10px;right: 5px;bottom: 50px">
            <input type="button" value="隐藏对象" onclick="setVisibleFalse();" />
        </div>
    </body>
    </html>