**
初始化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。