自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CITYMAKER二次开发学习者之家

欢迎热爱三维GIS开发的兄弟们关注和学习CITYMAKER

  • 博客(45)
  • 收藏
  • 关注

原创 【二次开发】CityMaker常用功能——图层目录

**CityMaker 图层目录**一: 图层目录概述CityMaker图层目录信息主要包括数据组织逻辑结构和其他展示项逻辑结构,它主要存储在工程文件中,所以在开发前需要使用Explorer或Connect软件,将工程文件发布成(.cep)文件。二: 显示图层目录1. JS步骤本文章主要使用JavaScript举例,使用ztree组件展示图层目录。(1)加载CEP工程(2)添加引用复制runtime或SDK下的bin文件夹至项目exe运行路径。   点击项目目录下引用——>右键

2020-08-12 10:16:50 643

原创 【二次开发】初始化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 768 1

原创 【二次开发】CityMaker常见分析——地形编辑

**地形编辑**一:技术原理:地形编辑主要针对TED数据进行高度重绘,可以实现实时对地形进行修改。地形编辑主要分为两步:绘制编辑范围,设置高程替代形式,进行地形编辑。二:实现瓦片挖洞:1. .Net代码private void tileholeanalysis() { AxRenderControl rendercontrol=getRenderControl()...

2019-02-20 17:54:31 818

原创 【二次开发】CityMaker常见分析——瓦片挖洞

**瓦片挖洞**一:技术原理:瓦片挖洞用到了几何编辑模块的瓦片挖洞方法,主要作用是切除部分瓦片数据,显示出瓦片以下遮挡的部分模型。瓦片挖洞主要分为两步:绘制挖洞面,进行瓦片挖洞。####二:实现瓦片挖洞:1. .Net代码private void tileholeanalysis() { AxRenderControl rendercontrol=getRende...

2019-02-20 17:52:14 1243

原创 【二次开发】CityMaker常见分析——通视分析

**通视分析**一:技术原理:通视分析是指以某一点为观察点,研究到目标点通视情况的模拟分析。可以分为粗查询和细查询两种1、粗查询是根据视线与模型包围盒之间的空间关系进行分析;2、细查询是根据视线与模型三角格网面之间的空间关系进行分析;如果视线与任何模型存在相交,则该两点间不可通视。通视分析主要分为三步:确定缓冲区范围,设置查询条件,进行空间查询。二:实现通视分析:1. .Ne...

2019-02-20 17:49:14 1418

原创 【二次开发】CityMaker常见分析——日照分析

**日照分析**一:技术原理:随着地球的公转与自转,太阳位置也随之移动,建筑遮挡的阴影范围也处于不断变化中,为了体现日照变化所带来的阴影变化,我们引入了日照分析接口。####日照分析主要分为三步:设置太阳角度模式,获取太阳角度,开启实时阴影。二:实现日照分析:1. .Net代码private void LoadSunAnalysis() { AxRenderCo...

2019-02-20 17:45:35 1376

原创 【二次开发】CityMaker常见分析——模型挖洞

**模型挖洞**一:技术原理:模型挖洞通过面与模型的空间分析,确定挖洞区域模型;对于该部分模型,采用IGeometryConvertor接口,切割与面相交的模型。模型挖洞主要分为三步:绘制挖洞面,进行空间查询,依次对相交模型进行切割。二:实现模型挖洞:1. .Net代码private void modelpointanalysis() { AxRenderCont...

2019-02-20 17:37:01 797

原创 【二次开发】CityMaker常见分析——地形挖洞

**地形挖洞**一:技术原理:地形挖洞是地形编辑的一部分,主要作用是切除部分地形,显示出地形以下遮挡的部分模型。地形挖洞主要分为两步:绘制挖洞面,进行地形挖洞。二:实现地形挖洞:1. .Net代码private void terrainholeanalysis() { AxRenderControl rendercontrol=getRenderControl()...

2019-02-20 17:34:07 931

原创 【二次开发】CityMaker常见分析——填挖方分析

**填挖方分析**一:技术原理:填挖方分析是一个通过添加或移除表面材料来修改地表高程的过程。通俗的讲:就是计算将地面弄平整所需要拆除和填充的面积大小。填挖方分析主要分为三步:绘制填挖方范围,进行填挖方分析,展示填挖方结果。CalculateCutFill函数采用了回调函数的方式,通过传入的地形信息和采样点x、y值,获取采样点的高程Z。二:实现填挖方分析:1. .Net代码pr...

2019-02-20 17:13:55 1349

原创 【二次开发】CityMaker常见分析——水淹分析

**水淹分析**一:技术原理:水淹分析是地形分析的拓展,根据地形的高度,分析水平面上升后覆盖的空间范围,从而达到辅助决策、辅助救援等目的。水淹分析主要分为三步:确定水源点,构建水淹半径,进行水淹分析。二:实现水淹分析1. .Net代码private void watersinkAnalysis() { AxRenderControl rendercontrol=g...

2019-02-19 10:43:08 1131

原创 【二次开发】CityMaker常见分析——缓冲区分析

**缓冲区分析**一:技术原理:缓冲区分析是根据用户给定的一个点、线、面缓冲的距离,从而形成一个缓冲区的多边形,再根据多边形范围,检索该缓冲区内的空间实体的过程。缓冲区分析主要分为三步:确定缓冲区范围,设置查询条件,进行空间查询。二:实现缓冲区分析:1. .Net代码private void TopoAnalysis() { AxRenderControl ren...

2019-02-19 10:41:01 833

原创 【二次开发】CityMaker动态效果——动态海水

**创建动态海水**一:技术原理:为了模拟真实的水面波浪效果,我们引入了动态海水的感念。创建动态海水主要步骤是:加载地形图,创建IMultiPolygon作为海水范围,开启地形动态海水特效设置即可。二:创建动态海水:1. .Net代码//设置海水范围private void oceanArea(){ IGeometryFactory gfactory = new Ge...

2019-02-19 10:36:58 629

原创 【二次开发】CityMaker动态效果——热力图

**创建热力图**一:技术原理:在大数据应用环境中,为了反应较大空间范围的量的不同,我们引入了热力图的概念。通过热力图,可以用颜色的对比,较直观的表现出哪里数值较高,哪里数值较低。热力图通过FDB数据中的热力值字段生成,主要步骤是:读取点位数据,获取热力值字段,设置该字段的最大最小热力范围,从而动态渲染出整体热力图二:创建热力图:1. .Net代码private void Loa...

2019-02-19 10:34:56 1572

原创 【二次开发】CityMaker动态效果——运动物体

**创建运动物体**一:技术原理:为了实现更真实的人机交互,为了提供更好的可视效果,本平台提供了IDynamicObject接口,用于创建运动的物体。我们首先需要创建一个点,用于表示模型的初始位置,然后通过插入点的方式,构建出物体运动的轨迹MotionPath,并确定每段路径移动的时间。二:创建运动物体:1. .Net代码//创建一个运动物体private void LoadD...

2019-02-19 10:29:48 561

原创 【二次开发】CityMaker动态效果——相机动画

**让相机按路线飞行**一:技术原理:在现实生活中,随着时间的进程,事物之间总保持着相对运动的状态。为了反映这种相对运动的状态,我们使用动画来让静态的场景“动”起来。我们首先需要创建一个相机动画CameraTour,然后通过插入点的方式,构建出相机运动的轨迹,并确定每段路径移动的时间。针对已经生成的相机动画,我们可以使用播放、暂停、停止、导入导出等方法实现相应的功能。二:创建相机动画...

2019-02-19 10:27:43 760 1

原创 【二次开发】CityMaker动态效果——粒子特效

**粒子特效**一:技术原理:为了使三维场景效果更贴近真实情况,我们引入了粒子特效,用于描绘场景中诸如火焰、烟雾、爆炸等模糊景物的模拟。粒子特效是一组随着时间而不断移动的粒子集合体,它由粒子发射器生成,根据粒子控制器设定的参数沿一定方向移动,最后在某一时间消失。这种从粒子从“出生”到“死亡”的循环过程,产生了粒子的动态效果,我们称之为粒子特效。二:加载粒子特效:1. .Net代码...

2019-02-19 10:23:08 630

原创 【二次开发】CityMaker交互操作——多视口

**三维中的多视口**一:技术原理1、CityMaker把三维分为多个视口,正常模型显示也是分视口显示,一般情况是单视口,最多可以有4个视口。2、多视口分类: 正常多视口、画中画、同一场景不同视口、其他立体效果,比较特殊的是单一视图红蓝立体、单一视图四缓冲立体、水平两视口立体、头盔左一右一立体,这些除单一视图红蓝立体外其他都需要“高级立体”授权模块支持,如果无授权,出水印或视口模式切换不...

2019-02-19 10:17:48 485

原创 【二次开发】CityMaker几何体——标注

**三维中的图层标注**一:技术原理CityMaker中图层(featurelayer)标注指的通过属性字段设置图层的标注样式,具体分类详见如图:图层标注有两种方法:**·**创建图层的时候设置textrender;**·**通过setTextRender设置textrender文字渲染器ITextRender分为简易文字渲染对象ISimpleTextRender、多专题的文字渲...

2019-02-19 10:10:59 376

原创 【二次开发】CityMaker几何体——符号化

**三维中的图层符号化**一:技术原理CityMaker中图层(featurelayer)符号化指的通过设置颜色或者透明度等样式来改变整个图层的样式,具体详见如图:图层符号化有两种方法:**·**创建图层的时候设置geometryrender;**·**通过setGeometryRender设置geometryrender;几何渲染器IGeometryRender分为简易几何渲染...

2019-02-19 10:05:56 400

原创 【二次开发】CityMaker几何体——模型

**三维中创建模型**一:技术原理CityMaker模型点modelpoint是由模型符号(model)和纹理(image)组成,image可以是本地图片也可以是FDB纹理库中的图片,model可以是自己创建或者是用osg文件获取,一般情况model中由顶点数组、纹理数组、材质组成,通过顶点数组和纹理数组来描述模型和纹理规则接口:createGeometry、createRenderMo...

2019-02-18 17:00:59 687

原创 【二次开发】CityMaker几何体——体

**三维中创建体对象**一:技术原理CityMaker创建体,原理是由点生成线,由线生成面,由面生成体,在三维中都是根据一个点坐标和一些条件(长宽或半径、颜色样式等)来生成体对象,根据视觉可以把体分为:立方体、球、圆锥、圆柱。接口:立方体:CreateBox球:CreateSphere圆柱:CreateCylinder圆锥:CreateCone方法:一种是通过传入指定的坐标,第...

2019-02-13 17:18:13 528 1

原创 【二次开发】CityMaker几何体——面

**三维中创建面对象**一:技术原理基础原理是点组成线,线组成面,而citymaker中直接给的是创建多边形或者圆的几何,然后可视化该对象。过程:CityMaker创面,先创建几何对象,然后把几何对象可视化,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何,然后利用IObjectManager对象管理器接口来创建可视化对象(可以设置几何样式样式IGeomet...

2019-02-13 16:49:50 400

原创 【二次开发】CityMaker几何体——线

**三维中创建线对象**一:技术原理:基本原理就是由点组成线,citymaker是直接给的创建线几何接口,然后通过可视化创建对象。方法:CityMaker创建线对象,根据两个点坐标创建可视化线对象,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何点和几何线,然后利用IObjectManager对象管理器接口来创建可视化线对象(创建可视化点可以设置点的样式IC...

2019-01-31 15:17:37 432

原创 【二次开发】CityMaker几何体——点

**三维中创建点对象**一:技术原理:CityMaker创建点对象,根据一个实际点坐标创建可视化点对象,用到的是sdk中的IGeometryFactory(几何体工厂接口)来创建几何点,然后利用IObjectManager对象管理器(接口来创建可视化对象点,创建可视化点可以设置点的样式IPointSymbol)二:创建三维点对象:1. .NETpublic void Create...

2019-01-31 15:13:44 618

原创 【二次开发】CityMaker数据操作——撤销

**撤销及重做**一、原理Gvitech.CityMaker.FdeUndoRedo 组件封装了撤销或重置的方法。 命令管理工厂ICommandManagerFactory,用于创建命令管理对象 ICommandManager。ICommandManager用于管理对要素记录进行增删改动作的undo/redo命令。在进行增删改要素记录之前,调用StartCommand方法,在堆栈中作为一次...

2019-01-31 15:08:20 302

原创 【二次开发】CityMaker数据操作——空间查询

**空间查询**一、原理通过空间关系查询和定位空间实体是地理信息系统不同于一般数据库系统的功能之一。空间关系查询不改变数据库的存储。CityMaker SDK空间关系过滤器类ISpatialFilter接口,用于空间查询,可获取或设置空间过滤对象、空间列名称、空间关系谓词。其所支持的空间关系类型如下:enum gviSpatialRel 空间关系谓词 枚举值: gviSpatia...

2019-01-31 10:56:40 486

原创 【二次开发】CityMaker数据操作——增加

**数据增加**一、原理数据库ITable通过Insert()方法取得插入记录的游标,同时检查锁状态,为插入记录做准备。游标通过InsertRow,实现数据插入,并通过Flush()强制写入数据库。二、实现代码1. .net//存数据库,增加记录private void InsertRow(){ if (_currentFc != null && _current...

2019-01-31 10:41:50 416

原创 【二次开发】CityMaker数据操作——删除

**数据库删除**一、原理数据库删除有两种方式,一种通过Update游标的DeleteRow()方法删除当前行。删除行时,需要通过NextRow将游标移动到指定列。一种通过ITable的Delete(IQueryFilter)方法,删除符合条件的对象,返回删除的记录个数。该方法会把该要素所有相关的时态都删除。如果该记录添加了附件,附件不会一起被删掉,需要调用附件相关接口手动删除。二、实现...

2019-01-31 10:36:48 223

原创 【二次开发】CityMaker数据操作——更新

**数据库更新**一、原理ITable通过Update(IQueryFilter)方法可实现更新满足条件的记录。传入查询条件,通过NextRow将游标移动到指定列。 游标通过UpdateRow(IRowBuffer)更新当前行。二、实现代码1. .net版本private void UpdateFc(){ foreach (IFeatureClass fc in fclist) ...

2019-01-31 10:31:58 409

原创 【二次开发】CityMaker数据操作——查询

**数据库查询**一、文章说明FDB数据库实现了对数据时间、空间、属性一体化的管理,SDK提供了查询过滤器接口IQueryFilter,可实现属性、空间、时间查询。本节我们主要讲述数据库的属性查询。其空间查询及时态数据库将分别单独讲述。二、原理ITable通过Search方法,传入查询条件,返回符合查询条件的游标对象IFdeCursor。通过NextRow()可得到游标指向的一条记录,...

2019-01-31 10:24:55 487

原创 【二次开发】CityMaker数据操作——创建数据库

**数据库创建**一、原理FDB数据库定义了三层结构:数据源(DataSource)- 数据集(DataSet)- 要素类(FeatureClass)。DataSource——数据源。地理数据源,对应物理上的一个数据源,包括大文件、数据库、第三方空间数据库。可获取到要素数据集,要素字段,也可创建表存储字段信息,创建查询对象等。FeatureDataSet——数据集含有一个或者多个空...

2019-01-29 18:38:37 710

原创 【二次开发】CityMaker交互操作——显隐

**显示/隐藏对象**一、原理可渲染对象IRenderable通过设置VisibleMask属性可实现显示与隐藏。顺便提一下,平台可实现三维窗体的多视口展示,支持四个视口及画中画的显示。IRenderable::VisibleMask可获取或设置可绘制对象在多个视口中是否可见的掩码。其中,gviViewportMask 视口掩码,枚举值如下:    gviViewNone 所有视口都不...

2019-01-29 18:08:49 444

原创 【二次开发】CityMaker交互操作——高亮/闪烁

**高亮、闪烁对象**一、 高亮,闪烁原理所有可渲染对象,都继承于IRenderable对象,例如,IFeatureLayer、IRenderGeometry、ISkinnedMesh、ITerrainModifier等。IRenderable提供了高亮Highlight与取消高亮Unhighlight的方法。所有可渲染对象均可通过调用Highlight()与Unhighlight()实现...

2019-01-29 17:58:20 647

原创 【二次开发】CityMaker交互操作——拾取

**鼠标拾取**一、 鼠标拾取原理鼠标可以通过点选和框选的方式实现拾取渲染对象,并支持通过按住Ctrl键实现多选。 IRenderControl的MouseSelectObjectMask属性可以设置哪些类型的对象参与鼠标拾取,注意是按对象的类型过滤。如果想设置具体某个对象是否参与鼠标拾取可以通过IRenderable对象的MouseSelectMask属性来设置。鼠标可以拾取的对象有多种...

2019-01-29 13:15:35 656

原创 【二次开发】CityMaker交互操作——测量

**CityMaker测量**一、原理CityMaker平台封装了几种交互模式,包括飞行、步行、拾取和测量等。在测量模式下,通过设置不同的测量模式即可实现不同的测量方式。包括:    1. 任意点测距(gviMeasureAerialDistance)  2. 水平空间测距(gviMeasureHorizontalDistance)  3. 垂直空间测量(gviMeasureVer...

2019-01-29 11:55:52 574

原创 【二次开发】CityMaker数据加载——三维瓦片

**三维瓦片数据**一、技术原理在二维地图中,为了更快的呈现出某范围的数据,往往会对一整张分辨率非常高的地图进行切片,即对地图建立金字塔结构。它将地图由粗到细,按一定比例尺将地图分为N个等级,每个等级表现不同精度的要素,再对该等级的地图按一定大小进行切片,最后输出一张一张的图片。用户浏览地图时,根据比例尺的不同加载的是不同层级的某范围内的地图图片,由此大大减少了数据加载量,加快了地图浏览速...

2019-01-29 11:09:08 1998

原创 【二次开发】CityMaker数据加载——Server数据

**加载CityMaker Server 服务数据**一: 技术原理CityMaker Server 是伟景行研发的企业级的3D GIS服务聚合与发布平台,能够管理Feature、Terrain、3DTile三类数据源,数据源支持文件类型和数据库类型;且每个数据源可以发布一个或多个数据服务;发布的每个数据服务都可设置访问密码,以便于控制用户访问权限,同时提供WebSDKAPI,客户端可调用...

2019-01-29 11:03:49 858

原创 【二次开发】CityMaker数据加载——矢量数据

**加载矢量数据**一、技术原理计算机中显示的图形一般分为两大类——矢量和位图。矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧等,它们都是通过数学公式计算获得的。矢量图形无论是放大、缩小或者旋转都不会失真。CityMaker 几乎支持所有的主流矢量数据的加载,其支持的格式请参考SDKHelp中 gviConnectionType 中的数据类型。Shap...

2019-01-29 11:00:01 671

原创 【二次开发】CityMaker数据加载——三维模型

**加载三维模型**一: 技术原理三维模型是计算机对现实世界最真实的表达。CityMaker默认支持的数据库为关系型数据库FDB,即Firebird DataBase。它是一种关系型数据库,存储了地理数据与非地理数据,和各种数据之间的关系,存储了CityMaker所定义的数据结构的三维数据。CityMaker将其操作过程封装在了数据引擎,用户不需要另外安装数据库即可读取。CityMaker...

2019-01-29 10:57:33 1276

原创 【二次开发】CityMaker数据加载——地形

**加载地形数据**一: 技术原理地形是指地表各种各样的形态,是现实世界最真实的写照。在二维地图中,地形只能用等值线、格网DEM等抽象的表示,人们理解起来有一定的难度,而在三维场景中,地形能够加上高程以立体的方式展现。CityMaker的地形文件后缀名为.ted,是由CityMaker TerrainPush制作的,我们可以将img、tif等DEM/DOM数据导入TerrainPush中...

2019-01-29 10:50:47 987

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除