zoukankan      html  css  js  c++  java
  • Skyline软件二次开发初级——5如何在WEB页面中的三维地图上使用事件函数

    1.onFrame事件 - 移动摄像机:

    <html>
        <head>
            <title>onFrame - Move camera</title>
            <object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object>
            <script type="text/javascript">
            
            
    var time = 5 * 1000// move for 5 sec.

            
    function Init()
            {
                SGWorld.AttachEvent(
    "onFrame", onFrame);

                SGWorld.Navigate.JumpTo(SGWorld.Creator.CreatePosition(
    -100.040.01300000030-85));
                setTimeout(
    function () { SGWorld.DetachEvent("onFrame", onFrame); }, time);
            }
            
            
    function onFrame()
            {

                
    var pos = SGWorld.Navigate.GetPosition();
                
                pos.X 
    += 0.5;
                pos.Y 
    -= 0.2;

                SGWorld.Navigate.SetPosition(pos);                       
                
            }
            
            
    </script>
        </head>
        <body onload="Init();">
        </body>
    </html>

    2.onFrame事件 - 移动对象:

    <html>
        <head>
            <title>onFrame - Move objects</title>
            <object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object>
            <script src="abspath.js" type="text/javascript"></script>
            <script type="text/javascript">

            
            
    var model = null;
            
    var time;
             
            
    function Init()
            {
                time 
    = new Date();
                SGWorld.AttachEvent(
    "onFrame", onFrame);
                
                
    var pos = SGWorld.Creator.CreatePosition(-122.38050// x
                                                      37.62331,  // y
                                                      40.0,      // height
                                                      3,         // height type
                                                      297.0,     // yaw
                                                      15.0,      // pitch
                                                      0,         // roll
                                                      0          // dist
                                                      );
                                                                                                
                model 
    = SGWorld.Creator.CreateModel(pos, toAbspath("data/747.xpc"), 0.2);

                model.Attachment.AutoDetach 
    = false;
                                       
                SGWorld.Navigate.FlyTo(model);            
            }
            
            
    function onFrame(elapsedTime)
            {
                
    // move object with speed of 400km/h
                var distToMove = (400 * 1000 / 3600* (new Date().getTime() - time.getTime()) / 1000;

                model.Position 
    = model.Position.Move(distToMove, model.Position.Yaw + 0.1, model.Position.Pitch);
                time 
    = new Date();
            }
            
            
    </script>
        </head>
        <body onload="Init();">
        </body>
    </html>

    3.onLButtonDown事件:

    <html>
        <head>
            <object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object>
            <script type="text/javascript">
            
            
    var globe = null;
            
    var pos   = null;
            
    var popup, popup2;
                    
            
    function Init()
            {

                SGWorld.AttachEvent(
    "onLButtonDown", onLButtonDown);
                SGWorld.AttachEvent(
    "onRButtonDown", onRButtonDown);
                popup2 
    = SGWorld.Creator.CreatePopupMessage()
                popup2.InnerText 
    = "Left click on the terrain to get the coordinates at cursor position. Right click to finish.";
                SGWorld.Window.ShowPopup(popup2);
            }
            
            
    function onLButtonDown(flags, x,y)
            {
                
    var ret = SGWorld.Window.PixelToWorld(x, y);
                        
                popup 
    = SGWorld.Creator.CreatePopupMessage("onLButtonDown event""", x, y);
                
                popup.InnerText 
    = (ret == null? "Screen coordinate hit the sky" : "Screen coordinates ("+x+","+y+"):\nTerrain coordinate:\nX: " + ret.Position.X + "\nY: " + ret.Position.Y;

                SGWorld.Window.ShowPopup(popup);      

                
    return true// event was processed by the client. return false to allow additional processing of the event.
            }
            
            
    function onRButtonDown(flags, x,y)
            {

                SGWorld.DetachEvent(
    "onLButtonDown", onLButtonDown);
                SGWorld.DetachEvent(
    "onRButtonDown", onRButtonDown);

                
    if(popup)
                    SGWorld.Window.RemovePopup(popup);
                
    if(popup2)
                    SGWorld.Window.RemovePopup(popup2);
                
                
    return true// event was processed by the client. return false to allow additional processing of the event.
            }
            
            
    </script>
        </head>
        <body onload="Init();">
        </body>
    </html>

    4.屏蔽右键弹出菜单:

    <html>
        <head>
            <title>Preventing right popup</title>
            <object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object>
            <script type="text/javascript">
            
            
    function Init()
            {
                SGWorld.AttachEvent(
    "onRButtonDown", onRButtonDown);
                SGWorld.AttachEvent(
    "onRButtonDblClk", onRButtonDblClk);

                SGWorld.Window.ShowMessageBarText(
    "This sample shows how to disable the default right context menu. Double right-click to re-enable"3);   
            }        
            
            
    function onRButtonDown(flags, x,y)
            {

                
    return true// Tell TE that the OnRButtonDown event was processed by the client
            }
            
            
    function onRButtonDblClk(flags, x,y)
            {
                SGWorld.DetachEvent(
    "onRButtonDown", onRButtonDown);
                SGWorld.DetachEvent(
    "onRButtonDblClk", onRButtonDblClk);
                SGWorld.Window.HideMessageBarText();

                alert(
    "Right click is now enabled");
                
                
    return false;
            }
           
            
    </script>
        </head>
        <body onload="Init();">
        </body>
    </html>

    5.onTerraExplorerMessage事件:

    <html>
        <head>
            <title>onTerraExplorerMessage event</title>
            <object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility:hidden;height:0 "></object>
            <script type="text/javascript">
            
            
    function Init()
            {
                SGWorld.AttachEvent(
    "onTerraExplorerMessage", onTerraExplorerMessage);

                
    var label = SGWorld.Creator.CreateTextLabel(SGWorld.Creator.CreatePosition(-71.0042542.36081100), 
                                                          
    "Click here to get the name of the airport",SGWorld.Creator.CreateLabelStyle());

                
    var msg = SGWorld.Creator.CreateMessage(0"Logan International",0);
                label.Message.MessageID 
    = msg.ID;

                SGWorld.Navigate.JumpTo(label);                                                                        
            }
                    
            
    function onTerraExplorerMessage(messageId, senderNodeId)
            {
                
    var message = SGWorld.Creator.GetObject(messageId);
                
    var senderNode = SGWorld.Creator.GetObject(senderNodeId);
                senderNode.Text 
    = message.Text;
            }
            
            
    </script>
        </head>
        <body onload="Init();">
        </body>
    </html>
  • 相关阅读:
    倒下
    我还能相信谁

    工作这点事
    人,这东西
    祝福
    路,公车和鞋子
    那片海
    document.querySelector bug All In One
    js logical or assignment bug All In One
  • 原文地址:https://www.cnblogs.com/yitianhe/p/2697857.html
Copyright © 2011-2022 走看看