码迷,mamicode.com
首页 > 其他好文 > 详细

SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性

时间:2015-12-04 18:01:24      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

测试模型类型选择TerrainModel和Feature两种,测试代码如下:

<!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>选择TerrainModel对象</title>
    <script type="text/javascript">
        function StartF() {
            try {
                var sg = CreateSGObj();
                sg.AttachEvent("OnLButtonDown", OnLButtonDown);
            }
            catch (e) {
                alert(e);
            }
        }

        function EndF() {
            var sg = CreateSGObj();
            sg.DetachEvent("OnLButtonDown", OnLButtonDown);
        }

        function OnLButtonDown(Flags, X, Y) {
            try
            {
                var sg = CreateSGObj();
                var iwp = sg.Window.PixelToWorld(X, Y, 1 + 8192);
                if (iwp != null) {
                    alert(iwp.ObjectID);
                    var oModel = sg.Creator.GetObject(iwp.ObjectID);
                    var oBBox = null;
                    if (oModel.ObjectType == 17) // TerrainModel
                    {
                        oModel.Terrain.Tint.abgrColor = 0x66FF0000;
                        oBBox = oModel.Terrain.BBox;
                    }
                    else if (oModel.ObjectType == 33) // Feature 
                    {
                        oModel.Tint.abgrColor = 0x66FF0000;
                        //alert(oModel.Geometry.Wks.ExportToWKT());
                        var statisticsgPolyObj = sg.Creator.CreatePolygon(oModel.Geometry, sg.Creator.CreateColor(255, 0, 0, 255), sg.Creator.CreateColor(0, 255, 0, 26), 0, "", "temp");
                        //oBBox = oModel.BBox; // ?
                    }
                    else {

                    }
                    if (oBBox != null) {
                        var myGeometry = sg.Creator.GeometryCreator.CreateLinearRingGeometry([oBBox.MaxX, oBBox.MaxY, 0, oBBox.MaxX, oBBox.MinY, 0, oBBox.MinX, oBBox.MinY, 0, oBBox.MinX, oBBox.MaxY, 0])
                        var statisticsgPolyObj = sg.Creator.CreatePolygon(myGeometry, sg.Creator.CreateColor(255, 0, 0, 255), sg.Creator.CreateColor(0, 255, 0, 26), 0, "", "temp");
                    }
                }
            }
            catch (e)
            {
                alert(e);
            }
            return false;
        }
        
        //------------------------------------------------------------
        // 创建sgworld对象  赵贺 2015.06.09. TEPro6.6
        //------------------------------------------------------------
        function CreateSGObj() {
            var obj = $("sgworld");
            if (obj == null) {
                obj = document.createElement(‘object‘);
                document.body.appendChild(obj);
                obj.name = "sgworld";
                obj.id = "sgworld";
                obj.classid = "CLSID:3A4F9199-65a8-11d5-85c1-0001023952c1";
            }
            return obj;
        }        
        function $(id) {
            return window.document.getElementById(id);
        }
    </script>
</head>
<body>
    <input id="Button1" type="button" value="开始" onclick="StartF()" />
    <input id="Button2" type="button" value="结束" onclick="EndF()" />
    <div id="res"></div>
    <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>

 

SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性

标签:

原文地址:http://www.cnblogs.com/yitianhe/p/5019970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!