解决Skyline 6.5版本中3DML模型单体化后外部网页挂接问题

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); } } }
原文地址:https://www.cnblogs.com/yitianhe/p/3929428.html