【二次开发】初始化CityMaker三维控件

版权声明:CityMaker技术服务中心——小白 https://blog.csdn.net/weixin_38476447/article/details/86512436

**

初始化CityMaker三维控件

**

一: 第一个三维场景

通过本章节介绍哦, 可以快速的学会在桌面端、浏览器端加载一个三维GIS场景。
本教程将分为.Net版本与JS版本,使用的IDE分别为 VS2010、WebStorm10。

二: 创建Hello World 项目

1. .Net步骤
(1)打开VS2010,文件——>新建项目——>创建Windows窗体应用程序
   在VS2010的文件菜单中选择新建项目,名称为MainWindow 完成。
在这里插入图片描述
(2) 添加引用
  点击项目目录下引用——>右键———>添加引用——>选择cityMaker Runtime安装目录下\Assemblies文件夹所有dll文件。
在这里插入图片描述
(3) 初始化三维场景
在文件头添加:

using Gvitech.CityMaker.Common;
using Gvitech.CityMaker.RenderControl;
using Gvitech.CityMaker.Controls;
using Gvitech.CityMaker.FdeCore;
using Gvitech.CityMaker.FdeGeometry;
using Gvitech.CityMaker.Math;

在构造函数MainWindow()中InitializeComponent()后面添加以下代码:

//初始化三维控件
AxRenderControl rendercontrol = new AxRenderControl();//New 一个三维窗体插件
((System.ComponentModel.ISupportInitialize)(rendercontrol)).BeginInit();//空间开始初始化
rendercontrol.Dock = DockStyle.Fill;//空间以填充方式布局
this.Controls.Add(rendercontrol);//将三维控件加载到主窗体;
((System.ComponentModel.ISupportInitialize)(rendercontrol)).EndInit();///等待窗体初始化完毕///

IPropertySet ps = new PropertySet();
ps.SetProperty("RenderSystem", gviRenderSystem.gviRenderOpenGL);
//设置初始化配置参数(RenderSystem 表示渲染系统类型。取值为:OpenGL、D3D)

rendercontrol.Initialize(false, null);//设置三维场景为平面三维场景,第一个参数改为false表示球面

F5运行即可,漂亮精美的地球就这么出来了!
在这里插入图片描述

2. JS步骤

(1)创建网页文件。
  打开WebStorm,新建项目,鼠标右键新建HTML,命名为HelloWorld,将其类型直接修改为html。
  添加以下内容:

<!DOCTYPE html>
 <html>
   <head lang="en">
   <meta charset="UTF-8">
   <title></title>
   </head>
   <body>
       <!--三维控件,设置id为“__g”,高度为600像素,宽度为800像素-->
       <object id="__g" type="application/x-cm-3d" style="height: 980px; width: 1820px"></object>>
   </body>
</html>

(2)添加初始化控件,并初始化。
在body标签后,添加script标签

window.onload = function () {//页面加载完成事件
    var __g = document.getElementById("__g");  //获取id为“__g”的object对象
    // 初始化RenderControl控件
    var ps = __g.new_PropertySet;    //设置初始化参数
    ps.setProperty("RenderSystem", "OpenGL");    //设置渲染引擎为OpenGL
    var bInit = __g.initialize(true, ps);    //设置三维场景为普通三维场景
    if (!bInit) {
        alert("三维控件初始化失败!");
        return false;
    }
}

最后,直接双击HTML文件浏览器打开即可。

三:注意事项

如果网页中显示无法使用该插件,则表示该浏览器已经不支持ActiveX技术,请更换浏览器版本。CityMaker支持的浏览器有:

1. IE浏览器支持:IE8、IE9,IE10、IE11;

2. FirFox浏览器:支持FireFox52以下的版本;

3. chrome浏览器:支持Chorme V45以下的版本;

4. 其他浏览器大多采用IE、Chorme、Firefox的内核,只要内核支持三维插件,浏览器就支持。

5. COM加载失败的异常:system.Refelection…:调用的目标发生了异常。

6. 浏览器加载之后IE有效果,其他浏览器无法显示三维。例:
在这里插入图片描述
在这里插入图片描述

四:常见问题分析及解决方法

问题:注册表中无法找到该COM组件。
解决方法:
1、关闭杀毒软件,关闭所有引用Runtime的应用程序例如VS。
2、彻底卸载CityMaker Runtime,并找到安装目录,确认是否是否卸载干净。
3、重装CityMaker Runtime。

猜你喜欢

转载自blog.csdn.net/weixin_38476447/article/details/86512436
今日推荐