Skyline软件二次开发初级——9如何在WEB页面中的三维地图上进行交互

1.屏幕坐标转换为空间坐标:

 

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

            SGWorld.AttachEvent(
" onLButtonUp " , onLButtonUp);
            SGWorld.Window.ShowMessageBarText(
" Click on terrain to get information " 2 );
            popup 
=  SGWorld.Creator.CreatePopupMessage( " 3D Window sample " );            
        }


        
function  onLButtonUp(flags, x,y)
        {

            
var  ret  =  SGWorld.Window.PixelToWorld(x, y);

            
if  ((ret.Type  &   0x00000020 ==   0 )
            {
                popup.InnerHTML 
=   " x:  "   +  ret.Position.X.toFixed( 5 +   " <br> " ;
                popup.InnerHTML 
+=   " y:  "   +  ret.Position.Y.toFixed( 5 +   " <br> " ;

                
if  (ret.ObjectID)
                {
                    
var  object  =  SGWorld.Creator.GetObject(ret.ObjectID);
                    popup.InnerHTML 
+=   " <br><u>Object detected:</u><br> " ;
                    
if (object.TreeItem)
                        popup.InnerHTML 
+=   " Name: \" "   +  object.TreeItem.Name  +   " \"<br> " ;
                    
else
                        popup.InnerHTML 
+=   " Object is not in project tree<br> " ;
                    popup.InnerHTML 
+=   " Type:  "   +  object.ObjectType  +   " <br> " ;
                }
            }
            
else
            {
                popup.InnerHTML 
=   " Hit the sky " ;
            }
                
            popup.Width 
=   250 ;
            popup.Align 
=   " TopLeft " ;
            SGWorld.Window.ShowPopup(popup);  
                
            
return   false //  let the system continue processing the event
        }
        
        
        
function  Uninit()
        {
            
if (SGWorld.Project.Name  ==   "" )
                
return ;
            SGWorld.Window.HideMessageBarText();
            
if (popup)
                SGWorld.Window.RemovePopup(popup);      
        }
        
        
</ script >
     </ head >
     < body  onload ="Init();"  onunload ="Uninit()" >
     </ body >
</ html >

 

转载于:https://www.cnblogs.com/yitianhe/archive/2012/09/24/2699678.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值