1、加载一个FDB,并在加载结束的时候绑定函数RcMouseClickSelect:

      this.axRenderControl1.RcMouseClickSelect += new Gvitech.CityMaker.Controls._IRenderControlEvents_RcMouseClickSelectEventHandler(axRenderControl1_RcMouseClickSelect);

2、创建标签代码

  ILabel label = objManager.CreateLabel(rootId);label.Text = "label" + labelCount.ToString();IPoint p = geoFactory.CreatePoint(gviVertexAttribute.gviVertexAttributeZ);p.SetCoords(0, 0, 0, 0, 0);label.Position = p;labelCount++;currentLabel = label;this.axRenderControl1.InteractMode = gviInteractMode.gviInteractSelect;this.axRenderControl1.MouseSelectMode = gviMouseSelectMode.gviMouseSelectMove | gviMouseSelectMode.gviMouseSelectClick;this.axRenderControl1.MouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectFeatureLayer | gviMouseSelectObjectMask.gviSelectTerrain;mode = 1;

3、对应的鼠标点击事件代码

  void axRenderControl1_RcMouseClickSelect(object sender, Gvitech.CityMaker.Controls._IRenderControlEvents_RcMouseClickSelectEvent e){if (e.pickResult == null)return;if (e.eventSender == gviMouseSelectMode.gviMouseSelectMove){if (currentLabel != null)currentLabel.Position = e.intersectPoint;}else if (e.eventSender == gviMouseSelectMode.gviMouseSelectClick){switch (mode){case 1:{this.axRenderControl1.InteractMode = gviInteractMode.gviInteractNormal;}break;case 2:{if (clickCount == 0){ILabelPickResult pr = e.pickResult as ILabelPickResult;if (pr != null){currentLabel = pr.Label;clickCount++;}}else if (clickCount == 1){this.axRenderControl1.InteractMode = gviInteractMode.gviInteractNormal;}}break;}}}

4、标签移动代码

 private void toolStripButtonEditLabel_Click(object sender, EventArgs e){this.axRenderControl1.InteractMode = gviInteractMode.gviInteractSelect;this.axRenderControl1.MouseSelectMode = gviMouseSelectMode.gviMouseSelectMove | gviMouseSelectMode.gviMouseSelectClick;this.axRenderControl1.MouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectLable | gviMouseSelectObjectMask.gviSelectFeatureLayer | gviMouseSelectObjectMask.gviSelectTerrain;string tmpCursorPath = Path.Combine(Application.StartupPath.Substring(0, flag), @"Samples\Media\cursors\Cross.cur");this.axRenderControl1.MouseCursor = tmpCursorPath;currentLabel = null;mode = 2;clickCount = 0;}

5、直接集成这几个按钮事件到你的工程。

技术支持 sunhaihong@gvitech.com
MrSun

CityMaker学习教程11 创建和移动标签相关推荐

  1. CityMaker学习教程14 水面图层的创建

    在CityMaker中,图层的创建稍显麻烦,现在讲下如何创建水面层. 1.打开Builder并创建一个空的场景. 2.创建一个空的数据源或者选择一个没加载的数据源. 3.右键数据源,创建个数据集,或者 ...

  2. CityMaker学习教程12 osg模型的创建

    1.加载一个FDB文件到场景. 2.加载完绑定事件 axRenderControl1.RcMouseClickSelect += AxRenderControl1_RcMouseClickSelect ...

  3. CityMaker学习教程08 一个示例,创建漫游路径

    1.在看完CS代码后可以自己写程序了,我刚写了一个由线创建动态路径的代码,给大家参考. 2.配置完场景,加载完FDB. 3.代码片段 _axcontrol.axRenderControl1.Inter ...

  4. CityMaker学习教程13 osg模型的移动

    1.在CityMaker中没有onframe函数,所以模型和标签的移动都要靠鼠拾取这个函数,这个函数能干非常多的事情,几乎所有的CityMaker交互事件都要绑定这个函数,前两节讲了标签的移动,这里模 ...

  5. CityMaker学习教程03 数据的导入

    了解了软件的模块分类和授权之后,我们便可以开始使用软件了,首先讲一下如何导入shape数据到平台内. 1.打.打开CityMaker Builder 2.点击新建场景,如果是WGS84场景,请自己选择 ...

  6. CityMaker学习教程01 模块说明

    首先说一下CityMaker的软件获取,如果是第一次接触想试用该软件,请登录http://www.citymakeronline.com/trial.htm,进行试用申请,为了你能一次性试用成功,最好 ...

  7. CityMaker学习教程06 数据的发布

    CityMaker的网络发布工具CityMaker Server,和arcgis的server和skyline的gate+sfs有些相像,能直接将FDB(矢量和模型),ted(地形和影像)以服务方式进 ...

  8. Unity3D 学习教程 4 创建物体

    点击红线部分 创建一个物体 创建一个立方体 ------------------------------------------效果---------------------------------- ...

  9. CityMaker学习教程09 一个示例,多窗体,画中画,多屏幕显示

    1.CityMaker采用同一个父窗体,多个申请窗体的方式进行多屏功能,并非添加另一个控件,不存在另一个场景,只是在原来的场景中扩展,你可以想象为复制出来. 2.实现多屏幕很简单,主要靠一个属性来控制 ...

最新文章

  1. Java 四种引用类型:强引用、软引用、弱引用、虚引用
  2. 自然语言处理工具hanlp自定义词汇添加图解
  3. 基于React脚手架集成Cesium
  4. C#编写的windows程序随系统启动
  5. ASP.Net 管道模型 VS Asp.Net Core 管道 总结
  6. java变换变量赋值_Java变量的类型转换
  7. 机器学习朴素贝叶斯算法_机器学习中的朴素贝叶斯算法
  8. 前端学习之HTML基本标签介绍
  9. 有人说智能制造装备前景大好,那么智能制造装备产业园的潜力如何?
  10. 【开发随笔】以强化学习环境 gym 库为例:为什么日常中我应该试图标准化接口?
  11. 蓝桥杯真题:杨辉三角形
  12. linux /etc/fstab详解
  13. 怎么使用手机号申请邮箱,注册移动手机邮箱有哪些步骤?
  14. WiFi偏门协议(四):增强的传输机制802.11aa
  15. 无线移动通信技术快速发展历程和趋向(转)
  16. 机器学习——算法介绍-4
  17. html5 自动矢量化,ArcScan自动矢量化
  18. 2022-2028全球与中国定时器市场现状及未来发展趋势
  19. Exemplar-based image inpainting(+code)
  20. CSS3 线性渐变循环动画

热门文章

  1. 2021年软件测试工具总结——模糊测试工具
  2. ubuntu18.04系统安装+基本环境配置【原创】
  3. 转载:2019年AI顶级会议时间表
  4. 从与迪思杰签约 看浪潮主机生态如何布局?
  5. YOLOX升级 | 阿里巴巴提出YOLOX-PAI,1ms内精度无敌,超越YOLOv6、PP-YOLOE
  6. Linux各版本内核下载地址
  7. 建立一个STM32F411RTOS
  8. 没有图片显示默认图片
  9. linux 启动 参数,Linux启动参数
  10. android OTG (USB读写,U盘读写)最全使用相关总结