**
加载三维模型
**
一: 技术原理
三维模型是计算机对现实世界最真实的表达。CityMaker默认支持的数据库为关系型数据库FDB,即Firebird DataBase。它是一种关系型数据库,存储了地理数据与非地理数据,和各种数据之间的关系,存储了CityMaker所定义的数据结构的三维数据。CityMaker将其操作过程封装在了数据引擎,用户不需要另外安装数据库即可读取。CityMaker同样支持其它关系型数据库如Oracle/MySql/PostgreSql等等,我们可以使用它们建立具有与FDB同样结构的数据库。
FDB是什么?
如上图: FDB数据库定义了三层数据表结构:数据源(DataSource)-数据集(DataSet)-要素类(FeatureClass)。
DataSource——数据源。
地理数据源,对应物理上的一个数据源,包括大文件、数据库、第三方空间数据库。可获取到要素数据集,要素字段,也可创建表存储字段信息,创建查询对象等。
FeatureDataSet——数据集
含有一个或者多个空间列的地理要素数据集。同时还可包含一个或多个表达对象或者特征之间联系的对象关系表,即包含ObjectClass的实例的数据集。支持多个要素类(FeatureClass),但是只有一个ModelClass(模型库),一个ImageClass(纹理库)。
FeatureClass——要素类
具有相同空间、时态、Property特征的一类地理特征。空间特征必须存在,且空间特征可以有一个或多个。空间特征可以是二维几何、三维几何、带有地理参考的栅格数据类型。也就是说要素类必须且至少具有一个空间几何字段。IFeatureClass继承于IObjectClass,IObjectClass继承于ITable。简单说,一个要素类就是由几张表构成的。
一个数据源可以管理多个数据集,一个数据集下可以有多个要素类。数据源的创建采用类工厂模式IDataSourceFactory,通过此接口可以实现数据源的创建,打开,移动,删除,资源回收等。给定数据集名称和投影坐标系对象通过IDataSource数据源的CreateFeatureDataset方法可以创建一个特征数据集,IFeatureDataset可以创建和打开下级的FeatureClass,ObjectClass。
CityMaker支持的所有关系型数据库参见第三节,或者参考SDKHelp中的gviConnectionType。
本章节主要展示如何加载其它关系型数据库的三维模型数据。
二:实现步骤
1. .Net步骤
(1)设置数据源连接
MySql数据库
private void setMySqlDatasourceConnection()
{
IConnectionInfo ci = new ConnectionInfo(); //新建数据连接
ci.ConnectionType = gviConnectionType.gviConnectionMySql5x; //设置数据连接类型为MySql
ci.Server = "localhost"; //服务器地址为本机
ci.Port = 3306; //端口为3306
ci.Database = "test"; //数据库名称为test
ci