Postgres数据库属性应用
支持数据格式:RVT、DGN、Max、IFC
Engine将以上格式数据发成3DT的同时,支持将属性信息保存到PostgresSQL数据库中。并通过Explorer浏览查看。
目录
环境安装
使用Postgres数据库存储属性信息,需要安装PostgresSQL和PostGIS。
请严格按照以下步骤进行安装
PostgresSQL 安装
直接以管理员身份运行安装包。
这里首先会安装 Visual C++ ReDistributable
然后下一步安装:
选择安装目录:
选择安装的项,这里全部选择:
选择数据文件保存位置,可以不选择原安装目录,有可能会有读写权限问题,最好选择一个其他自定义的目录:
设置输入密码,此密码需牢记。
端口号默认为5432,可以更改:
选择语言默认:
如果语言默认最后报错安装不上,可选择Chinese(Simplified)或者Singapore重装安装:
检查安装选择是否正确,然后下一步:
安装进行中:
安装完成后,如果勾选:Stack Builder may be used to download and install additional tools,drivers and applications to complement your PostgreSQL installation. 在Finish之后会运行Stack Builder,可用于下载和安装附加的工具、驱动程序和应用程序,以补充PostgreSQL安装。可以不勾选,勾选了会运行 Stack Builder 安装插件。
PostGIS 安装
打开安装包,根据提示直接下一步安装即可:
选择 Create spatial database,会初始化一个空间数据库:
选择安装目录,这里选择之前安装的PostgreSQL10的目录:
输入数据库的用户名、密码、端口号:
初始化的空间数据库名称,这里用默认的:
安装进行中:
网络环境设置
Postgres数据库默认是不支持远程连接的。需要对“PostgreSQL”中的“pg_hba.conf”文件进行配置数据库的访问权限。
操作步骤
在资源管理器中打开“PostgreSQL”的安装目录,并打开“data”文件夹;
找到配置文件 —— “pg_hba.conf”并打开(例如通过记事本方式);
修改配置文件内容,在最后加上“host all all 0.0.0.0/0 md5”;
保存并关闭,这样Engine和Explorer即可通过服务器地址对“PostgreSQL”进行写入和读取。
注:如果没有网络访问的需求,仅需要在Engine和Explorer中设置“服务器地址”中输入“localhost”即可。
Engine数据库设置
在Engine中,在“数据库设置”面板中输入数据库的相关信息后,发布即可。
注意:源数据名称、数据存储路径和Engine创建的数据库名称最好不要带空格、标点符号等字符。 更多详细操作,请查看Engine用户手册
发布后,请选择“开始”按钮,选择“PostgreSQL” > “pgAdmin 4”。在左侧的浏览器中查看新建的数据库是否已创建成功。
Explorer属性查看
通过Explorer对发布好的数据及属性进行查看。
操作步骤
打开Explorer,“新建”或“打开”一个工程。
选择“设置”>“空间库”。
输入服务器地址、端口号、数据库名等内容。
注意需和Engine发布时的完全相同。
关闭“设置”面板。
选择“工具”>“查询”>“点选”。
在场景中选择一个对象,工具面板中会显示相应的“查询信息”。
选择“详细信息”,弹出详细的属性信息面板。
可以继续拾取其他对象查看详细属性信息。
至此,关于通过PostgreSQL发布存储数据属性并查看的全部流程完成。
Postgres数据库系统表说明
查看表
DTS的数据库都存储在Schema名称为aircity的架构下面。数据库则为通过Engine发布时设置的“数据库名称”。
其中aricity_classes为3DT属性系统表。
字段name就是3DT中的LayerID,通过LayerID就能从这张表中查询到ID值,
然后该3DT对应的真实属性表 表名就是 “aircity_propertyclass_[ID值]”
在“aircity_propertyclass_[ID值]”上打开右键菜单,选择“查看/编辑数据”>“所有行”,可以查看表
在表中,uuid列即为三维模型的unique ID;properties列为模型的属性信息,以XML的二进制形式存储(取出二进制强转为char*即为XML文本);geom列为模型的几何信息。
编辑表
如果需要自定义增加属性,有以下两种方式:
aircity_propertyclass_[id]表中增加一列,这种情况下每个模型都会增加该属性
修改properties中的值,这种情况下只增加特定模型的属性。