1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using TerraExplorerX;
  10.  
  11. ////////设置3DML单体化对象的Message
    ////////赵贺
  12. namespace DXSkyline
  13. {
  14. public partial class Form1 : Form
  15. {
  16. SGWorld65 globe;
  17. IMouseInfo65 mi;
  18. I3DMLFeatureLayer65 _3dmlfeatureLayer;
  19. IWorldPointInfo65 wpi;
  20. IFeature65 theFeature;
  21. string lastID;
  22. int FPSLimitation;
  23. int framesNr;
  24. //IMeshLayer65 ml;
  25.  
  26. public Form1()
  27. {
  28. InitializeComponent();
  29. globe = new SGWorld65();
  30.  
  31. FPSLimitation = ;
  32.  
  33. }
  34.  
  35. void globe_OnFrame()
  36. {
  37. framesNr++;
  38. if (framesNr < FPSLimitation)
  39. { return; }
  40. mi = globe.Window.GetMouseInfo();
  41. wpi = globe.Window.PixelToWorld(mi.X, mi.Y);
  42.  
  43. if (wpi.Type == (WorldPointType) && lastID != wpi.ObjectID && wpi.ObjectID!="")
  44. {
  45. theFeature = (IFeature65)globe.ProjectTree.GetObject(wpi.ObjectID);
  46. _3dmlfeatureLayer = (I3DMLFeatureLayer65)globe.ProjectTree.GetObject(theFeature.ParentGroupID);
  47. //_3dmlfeatureLayer.FeatureProperties.Tooltip.Text = theFeature.FeatureAttributes.GetFeatureAttribute("建筑属性").Value; //wpi.ObjectID;
  48. ITerraExplorerMessage65 mm = globe.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, "www.baidu.com?" + theFeature.FeatureAttributes.GetFeatureAttribute("建筑属性").Value, MsgType.TYPE_URL);
  49. _3dmlfeatureLayer.FeatureProperties.MessageID = mm.ID;
  50. lastID = wpi.ObjectID;
  51. }
  52.  
  53. framesNr = ;
  54.  
  55. }
  56.  
  57. private void Form1_Load(object sender, EventArgs e)
  58. {
  59.  
  60. }
  61.  
  62. private void textBox1_TextChanged(object sender, EventArgs e)
  63. {
  64. FPSLimitation = int.Parse(textBox1.Text);
  65.  
  66. framesNr = ;
  67.  
  68. Console.WriteLine("FPS Limitation changed: " + FPSLimitation);
  69. }
  70.  
  71. private void button1_Click(object sender, EventArgs e)
  72. {
  73.  
  74. globe.OnFrame += new _ISGWorld65Events_OnFrameEventHandler(globe_OnFrame);
  75. }
  76.  
  77. private void button2_Click(object sender, EventArgs e)
  78. {
  79. globe.OnFrame -= new _ISGWorld65Events_OnFrameEventHandler(globe_OnFrame);
  80. }
  81. }
  82. }

解决Skyline 6.5版本中3DML模型单体化后外部网页挂接问题的更多相关文章

  1. cesium 3dtiles模型单体化点击高亮效果

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. c ...

  2. 解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题 ||ubuntu下将普通用户权限升级为root用户权限的方法;

    其实我现在才知道linux系统对于用户权限管理比较严,在ubuntu下系统不允许root权限的用户进入图像界面系统.由于之前没弄过权限这个东西瞬间掉坑了了. 我是想修改一下root下的nginx.co ...

  3. 解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题

    一, 进入正题之前我先在这里介绍一下vi编辑器的几条主要的编辑命令,以为一会会用的到的.(悔不改当初没好好学unix啊啊啊) 最重要的一点是要知道vi编辑器分为编辑模式和命令模式,按esc键就能从编辑 ...

  4. 通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法

    环境:skyline TerraExploere 6.6.1,win10 专业版 64位,ie 11 情况描述:在ie下浏览三维场景,ie占用内存不断增大并且内存占用固定在一个最高范围内,三维场景中部 ...

  5. 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型

    之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...

  6. vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)

    vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)

  7. “独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题

    OpenVINO提供了丰富的例子,为了方便研究和使用,我们需要将这些例子由原始的demo目录中分离出来,也就是“独立”运行,这里我们选择了较为简单的super_resolution_demo来说明问题 ...

  8. 解决idea中maven默认jdk为1.5的问题 : IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除

    解决idea中maven默认jdk为1.5的问题 最近运行总是报警告: IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除 发现是jdk版本问题, 即使自己修改structure中的 ...

  9. 记录一下Vray5中文汉化版本中导出EXR或vrimg多通道文件的那些坑和解决方法

    最近在给一个培训机构代课,学生英语基础差,就安装了Vray5的中文版,噩梦从此开始. 做过合成的都知道,需要输出多通道到NUKE或者AE中进行合成,通常情况下把多个pass分成不同的文件对硬盘反复读写 ...

随机推荐

  1. 【读书笔记】iOS-设置应用的硬件需求

    如果你的应用需要一些特定的硬件设备才能运行,你可以在应用的Info.plist文件中添加应用运行所需的硬件列表.如果设备上没有这些硬件的话,你的应用将不会启动. 如图,找到Info.Plist---& ...

  2. 【读书笔记】iOS-成为一名开发者

    iOS开发者计划是按年付费的,在过期前60天可以开始续费.如果你不续费的话,你将无法发布应用.另外苹果会吊销你的开发者证书和发布证书.最后,苹果将你在iTunes App Store上的所有应用下架. ...

  3. Javascript异步编程之二回调函数

    上一节讲异步原理的时候基本上把回掉函数也捎带讲了一些,这节主要举几个例子来具体化一下.在开始之前,首先要明白一件事,在javascript里函数可以作为参数进行传递,这里涉及到高阶函数的概念,大家可以 ...

  4. plsql如何导出查询结果

    mark一下,感谢大牛分享:http://www.cnblogs.com/Marydon20170307/p/8385674.html

  5. 13.1、多进程:进程锁Lock、信号量、事件

    进程锁: 为什么要有进程锁:假如现在有一台打印机,qq要使用打印机,word文档也要使用打印机,如果没有使用进程锁,可能会导致一些问题,比如QQ的任务打印到一半,Word插进来,于是打印出来的结果是各 ...

  6. [20171128]rman Input or output Memory Buffers.txt

    [20171128]rman Input or output Memory Buffers.txt --//做一个简单测试rman 的Input or output Memory Buffers. 1 ...

  7. node.js 基础学习

    node.js 是一个 javaScript 运行环境,可以让 js 运行在服务端. 在 nodejs 环境下,可以运行 javascript 基本语法,可以在nodejs 中执行一些无法在浏览器端执 ...

  8. Derek解读Bytom源码-持久化存储LevelDB

    作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...

  9. Json Schema的使用

    直接上案例: 在Web Api通讯中,客户端发送json数据,服务端反序列化json(json与某个类形成对应关系),在某些情况下,需要校验其上传的json是否合法. 服务端是使用Json.net(n ...

  10. Linux regulator framework(1) - 概述【转】

    转自蜗窝科技:http://www.wowotech.net/pm_subsystem/regulator_framework_overview.html 1. 前言 Regulator,中文名翻译为 ...