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 TerraExplorerX; ////////设置3DML单体化对象的Message////////赵贺 namespace DXSkyline { public partial class Form1 : Form { SGWorld65 globe; IMouseInfo65 mi; I3DMLFeatureLayer65 _3dmlfeatureLayer; IWorldPointInfo65 wpi; IFeature65 theFeature; string lastID; int FPSLimitation; int framesNr; //IMeshLayer65 ml; public Form1() { InitializeComponent(); globe = new SGWorld65(); FPSLimitation = 10; } void globe_OnFrame() { framesNr++; if (framesNr < FPSLimitation) { return; } mi = globe.Window.GetMouseInfo(); wpi = globe.Window.PixelToWorld(mi.X, mi.Y); if (wpi.Type == (WorldPointType)8192 && lastID != wpi.ObjectID && wpi.ObjectID!="") { theFeature = (IFeature65)globe.ProjectTree.GetObject(wpi.ObjectID); _3dmlfeatureLayer = (I3DMLFeatureLayer65)globe.ProjectTree.GetObject(theFeature.ParentGroupID); //_3dmlfeatureLayer.FeatureProperties.Tooltip.Text = theFeature.FeatureAttributes.GetFeatureAttribute("建筑属性").Value; //wpi.ObjectID; ITerraExplorerMessage65 mm = globe.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, "www.baidu.com?" + theFeature.FeatureAttributes.GetFeatureAttribute("建筑属性").Value, MsgType.TYPE_URL); _3dmlfeatureLayer.FeatureProperties.MessageID = mm.ID; lastID = wpi.ObjectID; } framesNr = 0; } private void Form1_Load(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { FPSLimitation = int.Parse(textBox1.Text); framesNr = 0; Console.WriteLine("FPS Limitation changed: " + FPSLimitation); } private void button1_Click(object sender, EventArgs e) { globe.OnFrame += new _ISGWorld65Events_OnFrameEventHandler(globe_OnFrame); } private void button2_Click(object sender, EventArgs e) { globe.OnFrame -= new _ISGWorld65Events_OnFrameEventHandler(globe_OnFrame); } } }
时间: 2024-10-08 13:38:29