
SDK开发入门教程
文章平均质量分 91
数字孪生_小白
努力降低数字孪生门槛
展开
-
【二次开发】CityMaker常用功能——图层目录
**CityMaker 图层目录**一: 图层目录概述CityMaker图层目录信息主要包括数据组织逻辑结构和其他展示项逻辑结构,它主要存储在工程文件中,所以在开发前需要使用Explorer或Connect软件,将工程文件发布成(.cep)文件。二: 显示图层目录1. JS步骤本文章主要使用JavaScript举例,使用ztree组件展示图层目录。(1)加载CEP工程(2)添加引用复制runtime或SDK下的bin文件夹至项目exe运行路径。 点击项目目录下引用——>右键原创 2020-08-12 10:16:50 · 747 阅读 · 0 评论 -
【二次开发】初始化CityMaker 8.0三维控件
**初始化CityMaker 8.0三维控件**一: 第一个三维场景通过本章节介绍哦, 可以快速的学会在桌面端加载一个CityMaker 8.0三维GIS场景。本教程主要介绍.Net版,使用的IDE分别 VS2015。二: 创建Hello World 项目1. .Net步骤(1)打开VS2015,文件——>新建项目——>创建Windows窗体应用程序在VS2015的文...原创 2019-12-19 11:59:18 · 820 阅读 · 1 评论 -
【二次开发】CityMaker几何体——面
**三维中创建面对象**一:技术原理基础原理是点组成线,线组成面,而citymaker中直接给的是创建多边形或者圆的几何,然后可视化该对象。过程:CityMaker创面,先创建几何对象,然后把几何对象可视化,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何,然后利用IObjectManager对象管理器接口来创建可视化对象(可以设置几何样式样式IGeomet...原创 2019-02-13 16:49:50 · 434 阅读 · 0 评论 -
【二次开发】CityMaker动态效果——热力图
**创建热力图**一:技术原理:在大数据应用环境中,为了反应较大空间范围的量的不同,我们引入了热力图的概念。通过热力图,可以用颜色的对比,较直观的表现出哪里数值较高,哪里数值较低。热力图通过FDB数据中的热力值字段生成,主要步骤是:读取点位数据,获取热力值字段,设置该字段的最大最小热力范围,从而动态渲染出整体热力图二:创建热力图:1. .Net代码private void Loa...原创 2019-02-19 10:34:56 · 1639 阅读 · 0 评论 -
【二次开发】CityMaker动态效果——运动物体
**创建运动物体**一:技术原理:为了实现更真实的人机交互,为了提供更好的可视效果,本平台提供了IDynamicObject接口,用于创建运动的物体。我们首先需要创建一个点,用于表示模型的初始位置,然后通过插入点的方式,构建出物体运动的轨迹MotionPath,并确定每段路径移动的时间。二:创建运动物体:1. .Net代码//创建一个运动物体private void LoadD...原创 2019-02-19 10:29:48 · 595 阅读 · 0 评论 -
【二次开发】CityMaker动态效果——相机动画
**让相机按路线飞行**一:技术原理:在现实生活中,随着时间的进程,事物之间总保持着相对运动的状态。为了反映这种相对运动的状态,我们使用动画来让静态的场景“动”起来。我们首先需要创建一个相机动画CameraTour,然后通过插入点的方式,构建出相机运动的轨迹,并确定每段路径移动的时间。针对已经生成的相机动画,我们可以使用播放、暂停、停止、导入导出等方法实现相应的功能。二:创建相机动画...原创 2019-02-19 10:27:43 · 816 阅读 · 1 评论 -
【二次开发】CityMaker动态效果——粒子特效
**粒子特效**一:技术原理:为了使三维场景效果更贴近真实情况,我们引入了粒子特效,用于描绘场景中诸如火焰、烟雾、爆炸等模糊景物的模拟。粒子特效是一组随着时间而不断移动的粒子集合体,它由粒子发射器生成,根据粒子控制器设定的参数沿一定方向移动,最后在某一时间消失。这种从粒子从“出生”到“死亡”的循环过程,产生了粒子的动态效果,我们称之为粒子特效。二:加载粒子特效:1. .Net代码...原创 2019-02-19 10:23:08 · 727 阅读 · 0 评论 -
【二次开发】CityMaker交互操作——多视口
**三维中的多视口**一:技术原理1、CityMaker把三维分为多个视口,正常模型显示也是分视口显示,一般情况是单视口,最多可以有4个视口。2、多视口分类: 正常多视口、画中画、同一场景不同视口、其他立体效果,比较特殊的是单一视图红蓝立体、单一视图四缓冲立体、水平两视口立体、头盔左一右一立体,这些除单一视图红蓝立体外其他都需要“高级立体”授权模块支持,如果无授权,出水印或视口模式切换不...原创 2019-02-19 10:17:48 · 535 阅读 · 0 评论 -
【二次开发】CityMaker几何体——标注
**三维中的图层标注**一:技术原理CityMaker中图层(featurelayer)标注指的通过属性字段设置图层的标注样式,具体分类详见如图:图层标注有两种方法:**·**创建图层的时候设置textrender;**·**通过setTextRender设置textrender文字渲染器ITextRender分为简易文字渲染对象ISimpleTextRender、多专题的文字渲...原创 2019-02-19 10:10:59 · 401 阅读 · 0 评论 -
【二次开发】CityMaker几何体——符号化
**三维中的图层符号化**一:技术原理CityMaker中图层(featurelayer)符号化指的通过设置颜色或者透明度等样式来改变整个图层的样式,具体详见如图:图层符号化有两种方法:**·**创建图层的时候设置geometryrender;**·**通过setGeometryRender设置geometryrender;几何渲染器IGeometryRender分为简易几何渲染...原创 2019-02-19 10:05:56 · 433 阅读 · 0 评论 -
【二次开发】CityMaker几何体——模型
**三维中创建模型**一:技术原理CityMaker模型点modelpoint是由模型符号(model)和纹理(image)组成,image可以是本地图片也可以是FDB纹理库中的图片,model可以是自己创建或者是用osg文件获取,一般情况model中由顶点数组、纹理数组、材质组成,通过顶点数组和纹理数组来描述模型和纹理规则接口:createGeometry、createRenderMo...原创 2019-02-18 17:00:59 · 733 阅读 · 0 评论 -
【二次开发】CityMaker动态效果——动态海水
**创建动态海水**一:技术原理:为了模拟真实的水面波浪效果,我们引入了动态海水的感念。创建动态海水主要步骤是:加载地形图,创建IMultiPolygon作为海水范围,开启地形动态海水特效设置即可。二:创建动态海水:1. .Net代码//设置海水范围private void oceanArea(){ IGeometryFactory gfactory = new Ge...原创 2019-02-19 10:36:58 · 661 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——缓冲区分析
**缓冲区分析**一:技术原理:缓冲区分析是根据用户给定的一个点、线、面缓冲的距离,从而形成一个缓冲区的多边形,再根据多边形范围,检索该缓冲区内的空间实体的过程。缓冲区分析主要分为三步:确定缓冲区范围,设置查询条件,进行空间查询。二:实现缓冲区分析:1. .Net代码private void TopoAnalysis() { AxRenderControl ren...原创 2019-02-19 10:41:01 · 872 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——水淹分析
**水淹分析**一:技术原理:水淹分析是地形分析的拓展,根据地形的高度,分析水平面上升后覆盖的空间范围,从而达到辅助决策、辅助救援等目的。水淹分析主要分为三步:确定水源点,构建水淹半径,进行水淹分析。二:实现水淹分析1. .Net代码private void watersinkAnalysis() { AxRenderControl rendercontrol=g...原创 2019-02-19 10:43:08 · 1207 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——地形编辑
**地形编辑**一:技术原理:地形编辑主要针对TED数据进行高度重绘,可以实现实时对地形进行修改。地形编辑主要分为两步:绘制编辑范围,设置高程替代形式,进行地形编辑。二:实现瓦片挖洞:1. .Net代码private void tileholeanalysis() { AxRenderControl rendercontrol=getRenderControl()...原创 2019-02-20 17:54:31 · 863 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——瓦片挖洞
**瓦片挖洞**一:技术原理:瓦片挖洞用到了几何编辑模块的瓦片挖洞方法,主要作用是切除部分瓦片数据,显示出瓦片以下遮挡的部分模型。瓦片挖洞主要分为两步:绘制挖洞面,进行瓦片挖洞。####二:实现瓦片挖洞:1. .Net代码private void tileholeanalysis() { AxRenderControl rendercontrol=getRende...原创 2019-02-20 17:52:14 · 1284 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——通视分析
**通视分析**一:技术原理:通视分析是指以某一点为观察点,研究到目标点通视情况的模拟分析。可以分为粗查询和细查询两种1、粗查询是根据视线与模型包围盒之间的空间关系进行分析;2、细查询是根据视线与模型三角格网面之间的空间关系进行分析;如果视线与任何模型存在相交,则该两点间不可通视。通视分析主要分为三步:确定缓冲区范围,设置查询条件,进行空间查询。二:实现通视分析:1. .Ne...原创 2019-02-20 17:49:14 · 1487 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——日照分析
**日照分析**一:技术原理:随着地球的公转与自转,太阳位置也随之移动,建筑遮挡的阴影范围也处于不断变化中,为了体现日照变化所带来的阴影变化,我们引入了日照分析接口。####日照分析主要分为三步:设置太阳角度模式,获取太阳角度,开启实时阴影。二:实现日照分析:1. .Net代码private void LoadSunAnalysis() { AxRenderCo...原创 2019-02-20 17:45:35 · 1488 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——模型挖洞
**模型挖洞**一:技术原理:模型挖洞通过面与模型的空间分析,确定挖洞区域模型;对于该部分模型,采用IGeometryConvertor接口,切割与面相交的模型。模型挖洞主要分为三步:绘制挖洞面,进行空间查询,依次对相交模型进行切割。二:实现模型挖洞:1. .Net代码private void modelpointanalysis() { AxRenderCont...原创 2019-02-20 17:37:01 · 842 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——地形挖洞
**地形挖洞**一:技术原理:地形挖洞是地形编辑的一部分,主要作用是切除部分地形,显示出地形以下遮挡的部分模型。地形挖洞主要分为两步:绘制挖洞面,进行地形挖洞。二:实现地形挖洞:1. .Net代码private void terrainholeanalysis() { AxRenderControl rendercontrol=getRenderControl()...原创 2019-02-20 17:34:07 · 996 阅读 · 0 评论 -
【二次开发】CityMaker常见分析——填挖方分析
**填挖方分析**一:技术原理:填挖方分析是一个通过添加或移除表面材料来修改地表高程的过程。通俗的讲:就是计算将地面弄平整所需要拆除和填充的面积大小。填挖方分析主要分为三步:绘制填挖方范围,进行填挖方分析,展示填挖方结果。CalculateCutFill函数采用了回调函数的方式,通过传入的地形信息和采样点x、y值,获取采样点的高程Z。二:实现填挖方分析:1. .Net代码pr...原创 2019-02-20 17:13:55 · 1426 阅读 · 0 评论 -
【二次开发】CityMaker几何体——体
**三维中创建体对象**一:技术原理CityMaker创建体,原理是由点生成线,由线生成面,由面生成体,在三维中都是根据一个点坐标和一些条件(长宽或半径、颜色样式等)来生成体对象,根据视觉可以把体分为:立方体、球、圆锥、圆柱。接口:立方体:CreateBox球:CreateSphere圆柱:CreateCylinder圆锥:CreateCone方法:一种是通过传入指定的坐标,第...原创 2019-02-13 17:18:13 · 561 阅读 · 1 评论 -
【二次开发】CityMaker数据操作——空间查询
**空间查询**一、原理通过空间关系查询和定位空间实体是地理信息系统不同于一般数据库系统的功能之一。空间关系查询不改变数据库的存储。CityMaker SDK空间关系过滤器类ISpatialFilter接口,用于空间查询,可获取或设置空间过滤对象、空间列名称、空间关系谓词。其所支持的空间关系类型如下:enum gviSpatialRel 空间关系谓词 枚举值: gviSpatia...原创 2019-01-31 10:56:40 · 527 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——增加
**数据增加**一、原理数据库ITable通过Insert()方法取得插入记录的游标,同时检查锁状态,为插入记录做准备。游标通过InsertRow,实现数据插入,并通过Flush()强制写入数据库。二、实现代码1. .net//存数据库,增加记录private void InsertRow(){ if (_currentFc != null && _current...原创 2019-01-31 10:41:50 · 440 阅读 · 0 评论 -
【二次开发】CityMaker数据加载——地形
**加载地形数据**一: 技术原理地形是指地表各种各样的形态,是现实世界最真实的写照。在二维地图中,地形只能用等值线、格网DEM等抽象的表示,人们理解起来有一定的难度,而在三维场景中,地形能够加上高程以立体的方式展现。CityMaker的地形文件后缀名为.ted,是由CityMaker TerrainPush制作的,我们可以将img、tif等DEM/DOM数据导入TerrainPush中...原创 2019-01-29 10:50:47 · 1040 阅读 · 0 评论 -
【二次开发】CityMaker大气特效
**让天气变化、雾霾、大气飘起来**一:技术原理为了使虚拟展示更加的真实,通常需要模拟一些天气的效果,如雨滴、雪花的实时模拟。 本章将介绍如何使一个普通的三维场景更加的真实。CityMaker采用粒子特效来模拟天气的效果,有关粒子特效,会在后面逐步介绍。主要接口:ISkyBox.Weather属性,主要可以设置以下7种天气: gviWeatherSunShine 晴天 gv...原创 2019-01-28 11:59:28 · 1701 阅读 · 0 评论 -
【二次开发】CityMaker更换天空盒
**换个漂亮的天空盒子**一:技术原理天空盒子指的是在三维场景中,利用贴图的方式模拟现实中的天空,以达到场景更加真实的效果。而每个天空盒子则由6个面构成(即四面体),因此需要6张不一样的贴图来表示各个方向的天空。在三维场景中,我们还可以创建不同区域来显示不同图形,这个区域即视口。视口(Viewport)是指窗口中的绘制输出区域。我们可以通过同一个场景建设多个视口,然后在每一个观察口都...原创 2019-01-28 11:41:45 · 974 阅读 · 0 评论 -
【二次开发】CityMaker授权方法
**CityMaker授权方法** 在使用CityMaker SDK开发的过程中如果出现异常或者水印,则有可能是runtime授权的问题。基础接口是不需要授权的,需要授权的接口请参见本章第三节。本章主要将介绍在开发过程中,如何给程序设置软授权。一:CityMaker 系列产品的授权方式1. 软授权采用文件(.lic)形式,用户安装完成产品后,利用RunTime安装目录下的cmdiag...原创 2019-01-28 11:32:23 · 2089 阅读 · 0 评论 -
【二次开发】初始化CityMaker三维控件
**初始化CityMaker三维控件**一: 第一个三维场景通过本章节介绍哦, 可以快速的学会在桌面端、浏览器端加载一个三维GIS场景。本教程将分为.Net版本与JS版本,使用的IDE分别为 VS2010、WebStorm10。二: 创建Hello World 项目1. .Net步骤(1)打开VS2010,文件——>新建项目——>创建Windows窗体应用程序 在...原创 2019-01-16 18:13:41 · 1290 阅读 · 2 评论 -
【二次开发】CityMaker几何体——线
**三维中创建线对象**一:技术原理:基本原理就是由点组成线,citymaker是直接给的创建线几何接口,然后通过可视化创建对象。方法:CityMaker创建线对象,根据两个点坐标创建可视化线对象,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何点和几何线,然后利用IObjectManager对象管理器接口来创建可视化线对象(创建可视化点可以设置点的样式IC...原创 2019-01-31 15:17:37 · 458 阅读 · 0 评论 -
【二次开发】CityMaker几何体——点
**三维中创建点对象**一:技术原理:CityMaker创建点对象,根据一个实际点坐标创建可视化点对象,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何点,然后利用IObjectManager对象管理器(接口来创建可视化对象点,创建可视化点可以设置点的样式IPointSymbol)二:创建三维点对象:1. .NETpublic void Create...原创 2019-01-31 15:13:44 · 666 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——撤销
**撤销及重做**一、原理Gvitech.CityMaker.FdeUndoRedo 组件封装了撤销或重置的方法。 命令管理工厂ICommandManagerFactory,用于创建命令管理对象 ICommandManager。ICommandManager用于管理对要素记录进行增删改动作的undo/redo命令。在进行增删改要素记录之前,调用StartCommand方法,在堆栈中作为一次...原创 2019-01-31 15:08:20 · 334 阅读 · 0 评论 -
【IOS移动端】CityMaker入门之集成IOS SDK
**CityMaker IOS移动端SDK入门**一、文章说明本文主要讲述了CityMaker IOS移动端开发环境部署以及SDK的调用流程,方便使用人员尽快了解CityMaker移动端开发。下载地址:链接:https://pan.baidu.com/s/1fZZ0rbwrZ8VSlqUlHreT7A 提取码:bp0v二:SDK集成配置1、导入citymaker.framework...原创 2019-01-15 10:32:08 · 400 阅读 · 0 评论 -
【二次开发】CityMaker数据加载——三维模型
**加载三维模型**一: 技术原理三维模型是计算机对现实世界最真实的表达。CityMaker默认支持的数据库为关系型数据库FDB,即Firebird DataBase。它是一种关系型数据库,存储了地理数据与非地理数据,和各种数据之间的关系,存储了CityMaker所定义的数据结构的三维数据。CityMaker将其操作过程封装在了数据引擎,用户不需要另外安装数据库即可读取。CityMaker...原创 2019-01-29 10:57:33 · 1349 阅读 · 0 评论 -
【二次开发】CityMaker数据加载——矢量数据
**加载矢量数据**一、技术原理计算机中显示的图形一般分为两大类——矢量和位图。矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧等,它们都是通过数学公式计算获得的。矢量图形无论是放大、缩小或者旋转都不会失真。CityMaker 几乎支持所有的主流矢量数据的加载,其支持的格式请参考SDKHelp中 gviConnectionType 中的数据类型。Shap...原创 2019-01-29 11:00:01 · 710 阅读 · 0 评论 -
【二次开发】CityMaker数据加载——Server数据
**加载CityMaker Server 服务数据**一: 技术原理CityMaker Server 是伟景行研发的企业级的3D GIS服务聚合与发布平台,能够管理Feature、Terrain、3DTile三类数据源,数据源支持文件类型和数据库类型;且每个数据源可以发布一个或多个数据服务;发布的每个数据服务都可设置访问密码,以便于控制用户访问权限,同时提供WebSDKAPI,客户端可调用...原创 2019-01-29 11:03:49 · 893 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——删除
**数据库删除**一、原理数据库删除有两种方式,一种通过Update游标的DeleteRow()方法删除当前行。删除行时,需要通过NextRow将游标移动到指定列。一种通过ITable的Delete(IQueryFilter)方法,删除符合条件的对象,返回删除的记录个数。该方法会把该要素所有相关的时态都删除。如果该记录添加了附件,附件不会一起被删掉,需要调用附件相关接口手动删除。二、实现...原创 2019-01-31 10:36:48 · 251 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——更新
**数据库更新**一、原理ITable通过Update(IQueryFilter)方法可实现更新满足条件的记录。传入查询条件,通过NextRow将游标移动到指定列。 游标通过UpdateRow(IRowBuffer)更新当前行。二、实现代码1. .net版本private void UpdateFc(){ foreach (IFeatureClass fc in fclist) ...原创 2019-01-31 10:31:58 · 444 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——查询
**数据库查询**一、文章说明FDB数据库实现了对数据时间、空间、属性一体化的管理,SDK提供了查询过滤器接口IQueryFilter,可实现属性、空间、时间查询。本节我们主要讲述数据库的属性查询。其空间查询及时态数据库将分别单独讲述。二、原理ITable通过Search方法,传入查询条件,返回符合查询条件的游标对象IFdeCursor。通过NextRow()可得到游标指向的一条记录,...原创 2019-01-31 10:24:55 · 522 阅读 · 0 评论 -
【二次开发】CityMaker数据操作——创建数据库
**数据库创建**一、原理FDB数据库定义了三层结构:数据源(DataSource)- 数据集(DataSet)- 要素类(FeatureClass)。DataSource——数据源。地理数据源,对应物理上的一个数据源,包括大文件、数据库、第三方空间数据库。可获取到要素数据集,要素字段,也可创建表存储字段信息,创建查询对象等。FeatureDataSet——数据集含有一个或者多个空...原创 2019-01-29 18:38:37 · 761 阅读 · 0 评论