SuperMap GIS基础软件中数据库使用指南

312 篇文章 79 订阅
136 篇文章 29 订阅

作者:Carlo

一、支持的主流数据库类型

1、主流数据库介绍

数据库名称版本不支持的数据集类型需要配置 客户端支持工作空间支持集群模式
SQLPlus2008/2012/2016/2018(仅 Windows 平台支持)视频、复合点、复合线、复合面、复合文本数据集
OraclePlus9i/10g/11g/12c/19c/20c复合点、复合线、复合面、复合文本数据集
OracleSpatial9i/10g/11g三维点、三维线、三维面、CAD、网络、三维网络、路由、模型、EPS点、EPS线、EPS面、EPS文本、复合点、复合线、复合面、复合文本数据集
MySQL5.6.16及以上版本(仅64位版本支持)复合点、复合线、复合面、复合文本数据集
PostgreSQL8.3及以上版本
PostGIS2.2.3(9.6) 以上版本复合点、复合线、复合面、复合文本数据集
DMPlus7/8复合点、复合线、复合面、复合文本数据集
MongoDB2.x/3.x/4.x栅格、影像、镶嵌数据集
UDBX**
Kingbase6/7/8(仅 Linux 平台支持)复合点、复合线、复合面、复合文本数据集
GaussDB 200200.6.5复合点、复合线、复合面、复合文本数据集

2、数据库推荐

数据库名称应用场景优点缺点推荐指数
PostGIS大体量空间数据管理、适应于大规模生产环境空间对象存储标签公开,支持多平台对接,空间函数支持下沉、支持高并发、读写性能高、支持集群需安装PostgreSQL引擎的空间数据扩展⭐⭐⭐⭐⭐
PostgreSQL大体量空间数据管理、对写入性能要求一般超图空间对象存储标签、易于管理、并发性能一般、支持集群不支持其他平台对接⭐⭐⭐⭐
OracleSpatial中等体量空间数据管理、对写入性能要求一般空间对象存储标准公开、支持多平台对接、并发性能一般、支持集群购买成本高、不支持三维数据,栅格数据,参数化对象等⭐⭐⭐⭐
OraclePlus中等体量空间数据管理、对写入性能要求一般超图空间对象存储标签、易于安全管理、支持集群购买成本高、不支持其他平台对接⭐⭐⭐⭐
UDBX(SQLite)中等体量空间数据管理,适用于试验演示环境易用性,轻量级,迁移便捷,读写性能高不支持并发场景、不支持集群⭐⭐⭐
MySQL中等体量空间数据管理,适用于试验演示环境易用性,不需安装客户端读写性能一般,不支持集群⭐⭐⭐
HighGo基于PostgreSQL、强于它千万级事务处理能力多种数据库开发接口与框架、高可用、安全、高效多版本、多应用场景兼容性好、生态丰富、安全可控、资源手册丰富、读写性能高项目应用较少⭐⭐⭐⭐⭐
Kingbase基于PostgreSQL部署简单、快速数据迁移系统可用性高达99.99%多CPU并行处理、高并发、安全四级、上下兼容扩展性强、兼容性好、操作简便网络资源少、读写性能一般⭐⭐⭐⭐
DMPlus完全自主研发读写分离、故障自动切换行列融合、高安全等级支持多种云基础设施、硬件平台广泛的SQL语法兼容适配多样、兼容性好、操作简便、安全可控、项目应用多网络资源少、读写性能一般⭐⭐⭐⭐

:针对二维瓦片、三维瓦片的管理推荐使用 MongoDB 数据库

二、SuperMap SDX+ 的系统表说明

SuperMap SDX+是SuperMap GIS的空间数据库引擎,是SuperMap GIS软件的重要组成部分,它采用先进的空间数据库存储技术、索引技术和查询技术,具有"空间-属性数据一体化"、"矢量-栅格数据一体化"和"空间信息-业务信息一体化"的集成式空间数据库管理能力,是GIS大型工程应用的理想选择。

经过实际应用和测试表明,SuperMap SDX+具有以下三项特色:

1)安装使用简便,充分结合数据库技术;

2)高性能管理和访问海量空间数据;

3)完善的数据模型,满足各种大型GIS应用的需求。

SuperMap SDX+ 共有20个系统表,下图为一些重要的系统表结构:
在这里插入图片描述

下面是对部分系统表的详细描述:

1、SmRegister—矢量数据集注册信息表

SmRegister表用来集中管理矢量数据集的信息,每新建一个矢量数据集,会在此表中新增加一条记录(带子数据集的矢量数据集,如Network或Tin类型的数据集,会在SmRegister表中添加两条记录),同样删除数据集时会将相应的记录从该表中移除。

字段名称字段类型描述
SmDatasetIDINTEGER数据集的唯一编号
SmDatasetNameCHARACTER VARYING(64)数据集的名称(别名)
SmTableNameCHARACTER VARYING(64)数据集的表名
SmIndexTableNameVARCHAR(64)索引表名
SmSubTableNameVARCHAR(64)子数据集的表名
SmIsSubCHAR(1)标明数据集是否为子数据集
SmDatasetTypeINTEGER数据集的类型
SmRecordCountINTEGER数据集中记录的数目
SmIndexLevelSHORT数据集空间索引的Level
SmLeftDOUBLE数据集的四至
SmTopDOUBLE数据集的四至
SmRightDOUBLE数据集的四至
SmBottomDOUBLE数据集的四至
SmIndexTypeDOUBLE数据集空间索引的类型
SmIndexLeftDOUBLE索引范围的四至
SmIndexTopDOUBLE索引范围的四至
SmIndexRightDOUBLE索引范围的四至
SmIndexBottomDOUBLE索引范围的四至
SmMinZDOUBLE数据集的最小高程值
SmMaxZDOUBLE数据集的最大高程值
SmLTUserIDINTEGER用于长事务环境,标识长事务用户特定版本
SmDtVersionINTEGER标识数据集被修改的版本
SmOptionINTEGER数据集的选项信息,如是否压缩存储等
SmStateINTEGER并发编辑锁的状态
SmEncTypeINTEGER数据集编码类型
SmToleranceFuzzyDOUBLE拓扑容限信息
SmToleranceDangleDOUBLE拓扑容限信息
SmToleranceNodeSnapDOUBLE拓扑容限信息
SmToleranceSmallPolygonDOUBLE拓扑容限信息
SmToleranceGrainDOUBLE拓扑容限信息
SmMaxGeometrySizeINTEGER数据集中最大几何对象的字节数
SmOnceFetchCountINTEGER优化参数:一次从服务器中取回的记录数
SmOptimizeCountINTEGER优化参数:用于全幅显示优化的最大记录数
SmOptimizeRatioDOUBLE优化参数:用于全幅显示优化的面积比率
SmCreateTimeDATETIME数据集创建时间
SmLastUpdateTimeDATETIME数据集最后被更新的时间
SmDynamicIndexINTEGER数据集是否已建立动态索引
SmCreatorCHARACTER VARYING(32)数据集创建者(用户)
SmProjectInfoBYTEA数据集投影信息
SmParentIDINTERGER当前数据集父数据集的ID
SmLockedUserIDINTERGER被锁定用户的ID
SmDescriptionVARCHAR(256)数据集描述信息
SmExtInfoVARCHAR(2048)数据集附加信息
SmThumbLONGRAW数据集快照
SmTotalGeometrySizeINTERGER数据集中几何对象的字节数
SmTinToleranceDOUBLETin数据集里,金子塔使用

2、SmBandRegister—波段信息注册表

栅格数据集的波段信息管理表,新建一个栅格数据集,会根据波段数添加对应数目的记录,删除数据集的时候会删掉相应的记录。

字段名称字段类型描述
SmBandIDSERIAL波段ID
SmDatasetIDINTEGER所属数据集ID
SmBandIndexINTEGER波段索引
SmBandNameCHARACTER VARYING(64)波段名称
SmBandFieldNameCHARACTER VARYING(64)波段所在字段名称
SmBandAvailINTEGER是否可用(保留字段)
SmOptionINTEGER选项信息,如是否压缩存储等
SmScalarINTEGER当前波段保留字,用于新添加的像素格式
SmEncTypeINTEGER编码类型
SmPixelFormatINTEGER像素格式(如单色、16色、256色等)
SmMaxBlockSizeINTEGER数据集中最大的Block的大小(字节数)
SmMinZDOUBLE极小值
SmMaxZDOUBLE极大值
SmPyramidCHARACTER VARYING(64)影像金字塔底图数据集的名称
SmPyramidLevelINTEGER影像金字塔的层数
SmCreatorCHARACTER VARYING(64)创建者(用户)
SmCreateTimeDATE创建时间
SmDescriptionCHARACTER VARYING(256)描述信息
SmNovalueDOUBLE无值
SmPaletteBYTEA调色板

3、SmImgRegister—栅格数据集注册信息表

SmImgRegister表用来集中管理栅格数据集的信息,每新建一个栅格数据集,会在此表中新加一条记录,同样删除数据集时会将相应的记录从该表中移除。

字段名称字段类型描述
SmDatasetIDINTEGER数据集的唯一编号
SmDatasetNameCHARACTER VARYING(64)数据集名称(别名)
SmTableNameCHARACTER VARYING(64)数据集表名
SmDatasetTypeINTEGER数据集的类型
SmEncTypeINTEGER数据集编码类型
SmOptionINTEGER数据集的选项信息,如是否压缩存储等
SmPixelFormatINTEGER像素格式(如单色、16色、256色等)
SmWidthINTEGER图像宽度
SmHeightINTEGER图像高度
SmEBlockSizeINTEGER块的大小(像素)
SmMaxBlockSizeINTEGER数据集中最大的Block的大小(字节数)
SmMinZDOUBLE数据集最小高程值
SmMaxZDOUBLE数据集最大高程值
SmPyramidCHARACTER VARYING(64)影像金字塔底图数据集的名称
SmPyramidLevelINTEGER影像金字塔的层数
SmBlockSizesINTEGER块的大小(字节数)
SmPaletteBYTEA调色板
SmGeoLeftDOUBLE地理坐标四至
SmGeoTopDOUBLE地理坐标四至
SmGeoRightDOUBLE地理坐标四至
SmGeoBottomDOUBLE地理坐标四至
SmClipRegionBYTEA数据集的显示掩膜多边形
SmCreateTimeDATETIME数据集创建时间
SmLastUpdateTimeDATETIME数据集最后一次更新时间
SmCreatorCHARACTER VARYING(32)数据集创建者(用户)
SmDescriptionCHARACTER VARYING(256)数据集描述信息
SmNoValueDOUBLE无值栅格
SmProjectInfoBYTEA数据集投影信息
SmColorSpaceINTEGER当前影像的默认色彩空间
SmExtInfoVARCHAR(2048)数据集附加信息
SmStatisticsInfosys.xmltype栅格数据集统计信息

4、SmDataSouceInfo—数据源相关信息表

SmDataSourceInfo表用来存储和数据源相关的信息。

字段名称字段类型描述
SmFlagINTEGER数据源标志信息(保留待用)
SmVersionINTEGER数据源版本号
SmMinorVersionINTEGER数据源小版本号
SmCoordSysINTEGER坐标系编码
SmCoordUnitINTEGER坐标单位
SmDistanceUnitINTEGER距离单位
SmDsDescriptionVARCHAR(255)对数据源的描述
SmProjectInfoLONGBINARY投影信息
SmVersionDateINTEGER版本日期
SmLastUpDateTimeDATE最后修改时间

5、SmDynamicIndex—动态索引信息表

SmDynamicIndex存储已建立动态索引的数据集信息。

字段名称字段类型描述
SmDatasetIDINTEGER数据集ID
SmIndexTableNameCHARACTER VARYING(64)索引表名称
SmCenterPntXDOUBLE索引中心点X坐标
SmCeneterPntYDOUBLE索引中心点Y坐标
SmGridRatioDOUBLE网格比率
SmGrid0DOUBLE第一层网格边长
SmGrid1DOUBLE第二层网格边长
SmGrid2DOUBLE第三层网格边长

6、SmFieldInfo—字段信息表

SmFieldInfo存储事件表数据集信息。

字段名称字段类型描述
SmIDINTEGER字段标识ID
SmDatasetIDINTEGER字段所在数据集ID
SmFieldNameCHARACTER VARYING(64)字段名
SmFieldCaptionCHARACTER VARYING(64)字段别名
SmFieldTypeINTEGER字段类型
SmFieldFormatCHARACTER VARYING(64)字段数值格式
SmFieldSignINTEGER存储拓扑关系信息的字段
SmFieldDomainCHARACTER VARYING(1024)字段域
SmFieldUpdatableINTEGER字段是否可更新
SmFieldSizeINTEGER字段长度

7、SmWorkspace—工作空间表

SmWorkspace存储工作空间信息。

字段名称字段类型描述
SmIDINTEGER字段标识ID
SmUserCHARACTER VARYING(64)用户名称
SmWorkspaceNameCHARACTER VARYING(64)工作空间名称
SmVersionINTEGER工作空间版本号
SmDataBLOB数据存储大小
SmUpdateTimeDATE数据最后一次更新时间

三、SuperMap SDX+ 的数据表说明

SuperMap SDX+ 将空间数据与属性数据一体化管理,数据表中的记录与图层中的空间对象一一对应。

下面分类型介绍数据表中的字段信息:

1、Region类型数据集

字段名称字段类型描述
SmIDINTEGER空间数据记录的ID
SmKeyINTEGER空间索引值
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGranuleDOUBLE当前记录的颗粒度值
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段
SmAreaDOUBLE当前记录的多边形面积
SmPerimeterDOUBLE当前记录的多边形周长

2、Line类型数据集

字段名称字段类型描述
SmIDINTEGER空间数据记录的ID
SmKeyINTEGER空间索引值
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGranuleDOUBLE当前记录的颗粒度值
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段
SmLengthDOUBLE当前记录的线长度
SmTopoErrorINTEGER当前记录的拓扑错误信息

3、Point类型数据集

字段名称字段类型描述
SmIDINTEGER空间数据记录的ID
SmXDOUBLE当前记录的点的横坐标值
SmYDOUBLE当前记录的点的纵坐标值
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段

4、Text类型数据集

字段名称字段类型描述
SmIDINTEGER空间数据记录的ID
SmKeyINTEGER空间索引值
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGranuleDOUBLE当前记录的颗粒度值
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段

5、Grid/DEM/Image类型数据集

字段名称字段类型描述
SmRowINTEGER当前Block的行ID
SmColumnINTEGER当前Block的列ID
SmSizeINTEGER当前Block的Size
SmRasterBYTEA当前Block的二进制数据

6、Network类型数据集

字段名称字段类型描述
Network主数据集字段详细信息
SmIDINTEGER空间数据记录的ID
SmKeyINTEGER空间索引值
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGranuleDOUBLE当前记录的颗粒度值
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmUserIDINTEGER用户ID,不列为系统字段
SmEdgeIDINTEGER线标识字段
SmFNodeINTEGER当前线的起始点ID
SmTNodeINTEGER当前线的终止点ID
SmResistanceADOUBLE正方向阻力
SmResistanceBDOUBLE负方向阻力
SmLengthDOUBLE线的长度
SmTopoErrorINTEGER拓扑错误信息
Network子数据集字段详细信息
字段名称字段类型描述
SmIDINTEGER空间数据记录的ID
SmXDOUBLE当前记录的点的横坐标值
SmYDOUBLE当前记录的点的纵坐标值
SmUserIDINTEGER用户ID,不列为系统字段
SmLibTileIDINTEGER图库索引ID
SmNodeIDINTEGER节点ID

7、Model类型数据集

字段名称字段类型描述
SmIDINTEGER数据记录的ID
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段

8、Mosaic类型数据集

字段名称字段类型描述
SmIDINTEGER数据记录的ID
SmKeyINTEGER空间索引值
SmSDRIWDOUBLE当前记录的左边界
SmSDRINDOUBLE当前记录的上边界
SmSDRIEDOUBLE当前记录的右边界
SmSDRISDOUBLE当前记录的下边界
SmGranuleDOUBLE当前记录的颗粒度值
SmGeometryBYTEA长二进制数据,存储当前记录的空间数据
SmLibTileIDINTEGER图库索引ID
SmUserIDINTEGER用户ID,不列为系统字段
SmRowINTEGER当前Block的行ID
SmColumnINTEGER当前Block的列ID
SmSizeINTEGER当前Block的Size
SmRasterBYTEA当前Block的二进制数据

四、SuperMap产品中主流数据库的使用方式

SuperMap 产品支持打开和新建多种数据源类型,分为文件型数据源、数据库型数据源、 Web 型数据源以及内存型数据源。

文件型数据源将空间数据和属性数据直接存储到文件中。存储扩展名为 *.udb 或*.udbx 的文件。在小数据量情况下使用文件型数据源地图的显示更快,且数据迁移方便。

Web型数据源将数据源存储在网络服务器中,OGC、GoogleMaps、超图云服务、REST 地图服务和天地图地图服务数据源属于 Web 数据源。

内存型数据源数据源中的数据都保存在内存中,为临时数据源,不支持保存。一些分析的中间结果可以存储在该数据源中,有利于提高分析的效率,当得到最终数据时可从内存数据源导出为本地数据。

数据库型数据源将数据源存储在数据库中,目前桌面产品提供 OraclePlus、Oracle Spatial、SQLPlus、PostgreSQL、DB2、KingBase、MySQL、BeyonDB、HighGoDB、KDB 、DM 、PostGIS和 MongoDB 十余种数据库型数据源功能。一般常用于数据量较大的数据存储,便于数据的管理和访问,且支持并发操作便于修改和数据同步。用户在于访问数据库需要本地配置相关的数据库环境和客户端。下文将根据支持经验介绍六种主流数据库的使用方式。

1、Oracle数据源

Oracle 数据库( 11g 版本)下载地址:

https://pan.baidu.com/s/1sNEhufsRdi-ztV1gZg4b9g?pwd=1nxk

Oracle 数据库( 11g 版本)服务端安装教程:

https://www.cnblogs.com/qfb620/p/4577255.html

Oracle 数据库客户端连接配置:1)必须安装客户端;2)环境变量配置正确

在这里插入图片描述

(1)打开SQL Plus输入安装时的用户名和密码连接到数据库
在这里插入图片描述

(2)创建表空间

create tablespace supermap datafile'D:\app\Carlo\oradata\orcl\supermap.dbf' size 20M autoextend on next 20M;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5hqjJOG-1672384583787)(RackMultipart20221230-1-gn1mgw_html_7f3b2e1a04a3380f.gif)]

(3)创建用户,并将用户赋给刚刚创建的表空间上

create user dbtest identified by supermap default tablespace supermap;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bj45kSqL-1672384583790)(RackMultipart20221230-1-gn1mgw_html_7f3b2e1a04a3380f.gif)]

(4)由于创建的新用户是没有数据库的权限,这是需要给新建的用户赋予对数据库的读写权限

grant connect,resource to dbtest;

在这里插入图片描述

(5)打开SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zkUkAZj-1672384583793)(RackMultipart20221230-1-gn1mgw_html_3e7b0fb11f69b8ac.png)]

(6)在弹出框中选择OraclePlus,在右侧界面输入实例名(如果是远程连接数据库填写规则为ip地址:端口号/实例名)、用户名和密码,新建数据库型数据源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SNeuQpIg-1672384583793)(RackMultipart20221230-1-gn1mgw_html_8d0623440aea96d8.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B7e8iAlA-1672384583793)(RackMultipart20221230-1-gn1mgw_html_2a4cd623fb5c66ca.png)]

2、DM数据源

DM 数据库( 7.6 版本)下载地址:
https://pan.baidu.com/s/1yLEum6NNhgtRdexWOSTQsw?pwd=khvq

DM 数据库( 7.6 版本)服务端安装教程:

https://blog.csdn.net/weiwu13/article/details/127537589

DM 数据库客户端连接配置:1)必须安装客户端;2)环境变量配置正确
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R4bAoQAR-1672384583794)(RackMultipart20221230-1-gn1mgw_html_9e90bdbf89b65ceb.png)]

扩展知识:

DM8版本的安装使用和DM7版本是一致的,但是需要注意的是,DM8不包含依赖库:libdmoci.so(Linux版本)/dmoci.dll(Windows版本)。检查是否包含依赖库方法:到【达梦安装目录】/bin/目录下查找是否有libdmoci.so/dmoci.dll这个依赖库,如果有的话就手动将其拷贝到【iDesktopX安装目录】/bin/目录下,然后再重启iDesktopX即可正常连接达梦数据库型数据源了。

(1)在DM目录下的bin目录下执行cmd命令:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EKPnPOIK-1672384583794)(RackMultipart20221230-1-gn1mgw_html_61e85054840f3280.png)]

(2)输入命令登录,账号密码为安装数据库时创建的

DIsql.exe SYSDBA/123456@10.10.0.102

在这里插入图片描述

(3)创建一个自动扩展的表空间,用于创建超图的达梦数据源

create tablespace "SUPERMAPDATASOURCE" datafile 'D:\dmdbms\data\DAMENG\SUPERMAPDATASOURCE.DBF' size 32 autoextend on next 64 maxsize 16777215 CACHE = NORMAL;

在这里插入图片描述

(4)创建一个用户,设置密码

create user "SUPERMAP" identified by "supermap@123" default tablespace "SUPERMAPDATASOURCE";

在这里插入图片描述

(5)给创建的用户赋予相关权限

grant "DBA","PUBLIC","RESOURCE" to "SUPERMAP";

在这里插入图片描述

(6)打开SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源

在这里插入图片描述

(7)在弹出框中选择DMPlus,在右侧界面输入服务器名称(如果是远程连接数据库填写规则为ip地址:端口号/实例名)、用户名和密码,新建数据库型数据源

在这里插入图片描述
在这里插入图片描述

3、MySQL数据源

MySQL 数据库( 8.0 版本)下载地址:
https://pan.baidu.com/s/1X_h1YvSaeZVtHDdKljPx0w?pwd=z7ip

MySQL 数据库( 8.0 版本)服务端安装教程:https://blog.csdn.net/qq_54796785/article/details/125215507

MySQL 数据库客户端连接配置:远程服务端必须保证本机有访问权限,如果没有权限可以按照下面步骤(3)来创建用户,其中%可以换成具体的IP,%代表任何客户端都可以连接

(1)打开MySQL 8.0 Command Line Client输入安装时的密码连接到数据库

在这里插入图片描述

(2)创建数据库supermap

create database supermap;

在这里插入图片描述

(3)创建用户dbtest

create user 'dbtest'@'%' IDENTIFIED BY '123456';

在这里插入图片描述

(4)将数据库的所有权限都赋予dbtest

grant all privileges on *.* to 'dbtest'@'%';

在这里插入图片描述

(5)设置密码(MySQL8.0采用了新的更安全的验证方式,需要用户按照mysql_native_password这种方式来连接)

alter user 'dbtest'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

在这里插入图片描述

(6)刷新权限

FLUSH PRIVILEGES;

在这里插入图片描述

(7)打开SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源

在这里插入图片描述

(8)在弹出框中选择MySQL,在右侧界面输入服务器地址(如果是远程连接数据库填写规则为ip地址:端口号)、数据库名称、用户名和密码,新建数据库型数据源

在这里插入图片描述

在这里插入图片描述

4、PostgreSQL数据源

扩展知识:

PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。

PostgreSQL 是开源空间数据库,构建在其上的空间对象扩展模块PostGIS使其成为一个真正的大型空间数据库。SuperMap 新增 SDX+ for PostGIS 引擎,可以直接访问 PostgreSQL 空间数据库,充分利用空间信息服务数据库的能力,如空间对象、空间索引、空间操作函数和空间操作符等,实现高效地管理和访问空间数据。

PostGIS 空间数据的管理一般包括:创建数据库、创建/删除数据源、创建/删除数据集、添加/删除记录(几何对象)、数据集中添加/删除字段、更新字段值以及查询数据等。

PostGIS需要和PostgreSQL版本兼容,例如:PostgreSQL为9.6版本对应的PostGIS为2.4.2版本,创建 PostGIS 数据库型数据源时,既可指定一个已有的 PostgreSQL 数据库名称,创建数据源;也可以指定一个新的数据库名称,创建数据源时,将先创建对应的 PostgreSQL 数据库,再创建数据源。一个 PostgreSQL 数据库只能创建一个 PostGIS 数据库型数据源。

PostgreSQL 数据库( 9.6.4 版本)下载地址:https://pan.baidu.com/s/1oY45mlPa0tgeLvT4Qxn1wQ?pwd=mz5g

PostgreSQL 数据库( 9.6.4 版本)服务端安装教程:
https://www.runoob.com/postgresql/windows-install-postgresql.html

PostgreSQL 数据库客户端连接配置:远程服务端必须保证本机有访问权限,如果没有权限,到服务端数据存储路径下修改/data/pg_hba.conf文件添加host all all 0.0.0.0/0 trust,重启服务。

在这里插入图片描述

在这里插入图片描述

(1)打开SQL Shell(psql)输入安装时的用户名和密码连接到数据库

在这里插入图片描述

(2)创建用户dbtest

CREATE USER dbtest WITH PASSWORD '123456';

在这里插入图片描述

(3)创建数据库exampledb

CREATE DATABASE exampledb OWNER dbtest;

在这里插入图片描述

(4)将exampledb数据库的所有权限都赋予dbtest

GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbtest;

在这里插入图片描述

(5)打开SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源

在这里插入图片描述

(6)在弹出框中选择PostgreSQL,在右侧界面输入服务器地址(如果是远程连接数据库填写规则为ip地址:端口号)、数据库名称、用户名和密码,新建数据库型数据源

在这里插入图片描述

在这里插入图片描述

5、Kingbase数据源

人大金仓数据库管理系统(KingbaseES)是我国自主研制开发的具有自主知识产权的通用关系型数据库,也是唯一入选国家自主创新产品目录的数据库产品。目前在信创项目中使用比较多的国产数据库就是Kingbase,目前Kingbase发布的最新版本是Kingbase V8R6版本,下面介绍一下该版本依托PostGIS数据库的安装方式以及SuperMap iDesktopX如何连接Kingbase数据源。

KingbaseES V8R6 版本)下载地址 :

https://pan.baidu.com/s/1ypD17Jox-o-7N2BqTBwxrg?pwd=swsg

Kingbase 数据库客户端连接配置:1)必须安装客户端;2)环境变量配置正确

安装KingbaseES数据库不能使用root用户,必须得使用普通用户

(1)创建普通用户kingbase,创建成功后会在home目录创建kingbase目录,后续可以将kingbase安装在该目录,可以避免在安装过程中出现权限问题(kingbae官方要求有个默认目录为 /opt/Kingbase/ES/V8,如果需要安装在此目录需要修改该目录用户组为kingbase并且设置可写权限)

groupadd kingbase

useradd kingbase -m -g kingbase

passwd kingbase

(2)解压kingbase安装包

mount -t iso9660 -o loop xxx.iso /opt/kingbase/

(3)安装kingbase,kingbase提供了命令行安装和图形化界面安装。此处采用图形化安装的方式。

进入第二步挂载的目录下执行setup.sh

cd /opt/kingbase///进入挂载目录

./setup.sh //执行安装命令

在这里插入图片描述

(4)选择安装模式为完全安装:

在这里插入图片描述

(5)选择授权文件,可以找kingbase技术或者销售获取三个月的试用许可

在这里插入图片描述

(6)选择安装目录:

在这里插入图片描述

(7)选择数据存储目录

在这里插入图片描述

(8)初始化数据库:此处的各项设置为数据库实例的基本设置,依据部署应用不同的需求就行设置。设置好端口、管理员用户名以及密码,最重要的两步是设置当前数据库是PostGIS而非Oracle,以及是否忽略大小写,此处设置为忽略大小写。

在这里插入图片描述

(9)注册数据库服务为系统服务:安装好数据库后可以根据需求将服务注册为系统服务,需要切换到root用户执行该命令

sh /home/kingbase/KingbaseTest/install/script/root.sh

(10)设置环境变量

vi ~/.bashrc

#添加两行变量:

export LD\_LIBRARY\_PATH=/home/kingbase/KingbaseTest/Server/lib:$LD\_LIBRARY\_PATH

export PATH=/home/kingbase/KingbaseTest/Server/bin:$PATH

#使环境变量生效

source ~/.bashrc

(11)启动数据库

#进入Server的bin目录

cd /home/kingbase/KingbaseTest/Server/bin

#启动数据库

./kingbase -D /home/kingbase/KingbaseTest/data/

(12)SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源,在弹出框中选择PostGIS,在右侧界面输入服务器地址(如果是远程连接数据库填写规则为ip地址:端口号)、数据库名称、用户名和密码,新建数据库型数据源。

在这里插入图片描述

在这里插入图片描述
补充信息:在Linux下的V8R6C7及以后版本需要联系 人大金仓技术支持获取并安装GIS扩展(https://help.kingbase.com.cn/v9/gis/gis-guide/index.html)
在这里插入图片描述
在这里插入图片描述

6、HighGo数据源

HigoDBRPM6.0.4 版本) 下载地址

https://pan.baidu.com/s/1gV0u4MAHXm2vT3BNy7Umeg?pwd=smap

对应 PostGIS 拓展下载地址

https://pan.baidu.com/s/1SEjrl-ftcvR-28HF17Qvfg?pwd=smap

HighGo 数据库客户端连接配置:远程服务端必须保证本机有访问权限,如果没有权限,到服务端数据存储路径下修改/data/pg_hba.conf文件添加host all all 0.0.0.0/0 md5,重启Highgo服务。

(1)通过root用户执行以下命令,安装第一个下载地址提供的安装包。

rpm -ivh 1b73693f2c91fd7f38acbc7d3882cf6c.rpm

(2)安装完毕后会在/opt/HighGo6.0.4-cluster/etc 目录下生成一个名为highgodb.env 的文件,内容如下所示,执行 source 命令使之生效。

#切换 highgo 用户

[root@hgdb bin]# su - highgo

[highgo@hgdb etc]# cat highgodb.env

export PATH=/opt/HighGo6.0.4-cluster/bin:$PATH

export LD\_LIBRARY\_PATH=/usr/lib64:/opt/HighGo6.0.4- cluster/lib:$LD\_LIBRARY\_PATH

export HGDB\_HOME=/opt/HighGo6.0.4-cluster

export HG\_BASE=/opt/HighGo6.0.4-cluster

export PGPORT=5866

export PGDATA=/opt/HighGo6.0.4-cluster/data

[highgo@hgdb etc]# source highgodb.env

#检查环境变量是否生效

[highgo@hgdb etc]# echo $PGDATA

/opt/HighGo6.0.1-cluster/data

(3)手动初始化数据库

[highgo@hgdb bin]$ initdb -D ../data \>/opt/HighGo6.0.4-cluster/bin/initdb.log

#设置 highgo 用户密码

Enter new superuser password:

Enter it again:

initdb: warning: enabling "md5" authentication for local connections

You can change this by editing pg\_hba.conf or using the option -A, or

--auth-local and --auth-host, the next time you run initdb.

[highgo@hgdb bin]$

(4)启动数据库

#启动数据库

[highgo@hgdb bin]$ pg\_ctl start

... server started

#登录数据库

[highgo@hgdb etc]$ psql -U highgo -d highgo

(5)如果验证正常,之后通过第二个rpm包安装PostGIS拓展

rpm -ivh postgis3.0-6.0.4-enterprise-centos7-x86-64-20220127.rpm

(6)安装步骤到这里就结束了,之后再创建用户名、密码及授权

[highgo@localhost bin]$ psql

用户 highgo 的口令:

psql (HighGo Database 6 Release 6.0.4-64-bit Production)

PSQL: Release HighGo Database 6 Release 6.0.4-64-bit Production

输入 "help"来获取帮助信息.

highgo=# CREATE USER dbtest WITH PASSWORD 'Supermap@123';

highgo=# CREATE DATABASE exampledb OWNER dbtest;

highgo=# GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbtest;

#只有超级用户才可以创建PostGIS拓展

highgo=# ALTER USER dbtest WITH SUPERUSER;

(7)SuperMap iDesktopX软件,右键数据源节点–新建数据库型数据源,在弹出框中选择HighGoDB,在右侧界面输入服务器地址(如果是远程连接数据库填写规则为ip地址:端口号)、数据库名称、用户名和密码,新建数据库型数据源

在这里插入图片描述

在这里插入图片描述

五、数据库之间的迁移

项目实际运维过程中,经常会遇到数据库升级改造、服务器设备替换更新,这就需要将旧的数据库中的数据迁移到新的数据库中存储。如果是数据库型的工作空间,整库迁移是可以同时把数据、地图、场景和工作空间一并迁移的。

同类型数据库之间的迁移可以通过数据库自带的命令行的形式实现,操作简单,便于实现,下文的1、2、3部分均采用此方式;而不同数据库之间的迁移,因为不同类型的数据库存储数据方式有所区别,内部表结构更是复杂,一般建议通过复制数据集的方式同步数据,但是这种方式很繁琐,因此我们自行制作了SuperMap iDesktopX 11i 桌面产品的"工作空间迁移"插件,将PostgreSQL / PostGIS数据库存储的数据整体进行迁移到DM数据库,从而减少工作量,节省时间,下文的4部分即采用此方式。

1、Oracle(11.2)->Oracle(12.1)

  • Oracle 命令行导出数据库:

(1)在Oracle目录下的bin目录下执行cmd命令:

在这里插入图片描述

(2)输入命令导出数据库,主要有如下几种操作:

1)导出数据库全部数据

仅输入数据库连接串和文件导出路径就可以执行导出,导出文件后缀为dmp

exp 用户名/密码@IP FILE=导出文件路径

2)按用户名导出

可支持多用户同时导出

exp 用户名/密码@IP FILE=导出文件路径 OWNER=(用户名1,用户名2)

3)按表名导出

可支持多表同时导出

exp 用户名/密码@IP FILE=导出文件路径 TABLES=(表名1,表名2)

4)按查询条件导出

QUERY指定查询条件

exp 用户名/密码@IP FILE=导出文件路径 TABLES=表名 QUERY=(where column\_name1=1 and column\_name2=2)

此处采用操作1)来导出用户名Oracle管理的数据库

exp Oracle/123456@10.10.0.102:1521/orcl FILE=D:\TEST\test.dmp

在这里插入图片描述

(3)查看D盘TEST文件夹会发现有新生成的test.dmp文件

在这里插入图片描述

  • Oracle 命令行导入数据库:

(1)将test.dmp文件拷贝到需要迁移的Oracle数据库所在的机器目录下

在这里插入图片描述

(2)同"Oracle命令行导出数据库"步骤(1)一样的操作命令行进入Oracle目录下的bin文件夹

在这里插入图片描述

(3)在Oracle中新建一个数据库、用户及密码,步骤参考文档模块四

//创建用户及密码

create user zpp identified by 123456;

//授权

grant connect,resource to zpp;

(4)导入test.dmp文件,并且没有提示错误即还原成功

在这里插入图片描述

(5)验证导入是否成功

在桌面打开数据库型数据源,填写步骤(3)导入的数据库连接参数

在这里插入图片描述

查看原始数据库里面的数据以及迁移成功后的数据库里面的数据对比

在这里插入图片描述

在这里插入图片描述

2、Mysql(5.6)->Mysql(8.0)

  • MySQL 命令行导出数据库:

(1)命令行进入MySQL目录下的bin文件夹,可以使用以下两种方式:

1)在cmd中输入的命令行:

d:

cd D:\数据库\mysql-5.6.40-winx64\bin

在这里插入图片描述

2)找到MySQL目录下的bin文件夹,执行cmd命令:

在这里插入图片描述

(2)输入命令导出数据库,主要有如下几种操作:

1)导出整个数据库(包括数据库中的数据):

mysqldump -u username -p dbname \> dbname.sql

2)导出数据库中的数据表(包括数据表中的数据):

mysqldump -u username -p dbname tablename \> tablename.sql

3)导出数据库结构(不包括数据,只有创建数据表语句):

mysqldump -u username -p -d dbname \> dbname.sql

4)导出数据库中数据表的表结构(不包括数据,只有创建数据表语句):

mysqldump -u username -p -d dbname tablename \> tablename.sql

//参数说明

mysqldump:mysql用于转存储数据库的实用程序,它主要产生一个SQL脚本

-u:用户名

-p:密码

dbname:数据库名称

此处采用操作1)来导出整个数据库dongyx,默认导出到MySQL目录下的bin文件夹

mysqldump -u root -p dongyx \> dongyx.sql;

在这里插入图片描述

(3)查看MySQL目录下的bin文件夹会发现有新生成的dongyx.sql文件

在这里插入图片描述

  • MySQL 命令行导入数据库:

(1)将dongyx.sql文件拷贝到需要迁移的MySQL数据库的bin目录下

在这里插入图片描述

(2)同"MySQL命令行导出数据库"步骤(1)一样的操作命令行进入MySQL目录下的bin文件夹

在这里插入图片描述

(3)在MySQL中新建一个数据库、用户及密码,步骤参考文档模块四

//创建数据库testdong

create database testdong;

//创建用户dongyx

create user 'dongyx'@'%' IDENTIFIED BY '123456';

//将数据库的所有权限都赋予dbtest

grant all privileges on \*.\* to 'dongyx'@'%';

//设置密码

alter user 'dongyx'@'%' IDENTIFIED WITH mysql\_native\_password BY '123456';

//刷新权限

FLUSH PRIVILEGES;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4)使用刚创建的数据库来存储导入的数据

use testdong;

在这里插入图片描述

(5)导入dongyx.sql文件再次出现"mysql>"并且没有提示错误即还原成功。

source dongyx.sql;

在这里插入图片描述

(6)验证导入是否成功

在桌面打开数据库型数据源,填写步骤(3)创建的连接参数

在这里插入图片描述

查看原始数据库里面的数据以及迁移成功后的数据库里面的数据对比

在这里插入图片描述

在这里插入图片描述

3、PostgreSQL(9.6)->PostgreSQL (14.0)

  • PostgreSQL 命令行导出数据库:

(1)在PostgreSQL目录下的bin目录下执行cmd命令:

在这里插入图片描述

(2)输入命令导出数据库test,默认导出到PostgreSQL目录下的bin文件夹:

pg\_dump -U postgres -p 5432 -d test -f test12.sql

//参数说明:

Pg\_dump :是安装时候的一个执行文件,主要就是把数据导出成sql(或者dump)文件;

-U:对应的用户名 postgres

-p:对应的端口号 5432

-d :导出库的名称;

-f:对应导出的sql存放路径

在这里插入图片描述

(3)查看PostgreSQL目录下的bin文件夹会发现有新生成的test12.sql文件

在这里插入图片描述

  • PostgreSQL 命令行导入数据库:

(1)将test12.sql文件拷贝到需要迁移的PostgreSQL数据库的bin目录下

在这里插入图片描述

(2)同"PostgreSQL命令行导出数据库"步骤(1)一样的操作命令行进入PostgreSQL目录下的bin文件夹

在这里插入图片描述

(3)在PostgreSQL中新建一个数据库、用户及密码,步骤参考文档模块四

//创建数据库zpp

CREATE DATABASE zpp OWNER postgres;

//将zpp数据库的所有权限都赋予postgres

GRANT ALL PRIVILEGES ON DATABASE zpp TO postgres;

(4)导入test12.sql文件,并且没有提示错误即还原成功

psql -d zpp -U postgres -f test12.sql

//参数说明:

-d :导入库的名称

-U:对应的用户名 postgres

-f:对应导入的sql存放路径

在这里插入图片描述

(5)验证导入是否成功

在桌面打开数据库型数据源,填写步骤(3)导入的数据库连接参数

在这里插入图片描述

查看原始数据库里面的数据以及迁移成功后的数据库里面的数据对比

在这里插入图片描述

在这里插入图片描述

4、PostgreSQL / PostGIS->DM(V8)

PostgreSQL / PostGIS 数据库与数据源之间的关系:

在这里插入图片描述

DM 数据库与数据源之间的关系:

在这里插入图片描述

从 PostgreSQL / PostGIS 整体迁移到 DM(V8),包含迁移:工作空间、数据源、数据集、地图、场景、布局、图表、模型、视频地图、大屏、表格 以及 资源 等共计 12 类。

迁移流程如下所示:

在这里插入图片描述

(1)根据输入的 PostgreSQL / PostGIS 数据库连接信息获取待迁移的工作空间;

(2)选择指定工作空间或者批量迁移;

(3)迁移工作空间中关联的数据源、数据集;

(4)迁移工作空间中存储的地图信息;

(5)迁移工作空间中存储的场景信息;

(6)迁移工作空间中存储的布局信息;

(7)迁移工作空间中存储的资源;

(8)迁移工作空间中存储的其他信息,包括:图表、模型、视频地图、大屏以及表格等;

(9)将上述迁移完成的工作空间另存为目标数据库的 DM 数据库型工作空间。

关于 SuperMap iDesktopX 11i "工作空间迁移"插件详细使用说明可以参考技术博客:SuperMap iDesktopX 11i 工作空间迁移插件使用说明》

六、瓦片在MongoDB数据库中的管理

MongoDB 数据库( 3.4.2 版本)下载地址:

https://pan.baidu.com/s/1sNEhufsRdi-ztV1gZg4b9g?pwd=1nxk

MongoDB 数据库( 4.4.2 版本)下载地址:

https://pan.baidu.com/s/1rtILb77_YA76rSSCim6ijA?pwd=0ywo

MongoDB 数据库( 4.4.2 版本)安装教程:

https://www.runoob.com/mongodb/mongodb-window-install.html

1、用户验证方式启动MongoDB

(1)MongoDB 2.0版本

1)进入MongoDB数据库的bin目录下,执行cmd命令,按顺序执行以下命令:

//创建数据库命令:

use test

//创建对应的用户及密码;

db.addUser("map","map")

2)以验证方式重启 MongDB 服务

mongod.exe --dbpath C:\MongoDB\data --logpath C:\MongoDB\log\log.txt -auth

更多详细步骤可以参考帮助文档: https://help.supermap.com/iDesktop/zh/tutorial/TechDocument/MongoDBDatabaseGuide

(2)MongoDB 3.4版本

1)进入MongoDB数据库的bin目录下,执行cmd命令,按顺序执行以下命令:

use admin

db.system.version.insert({'\_id':'authSchema'},{$set:{'currentVersion':3}})

db.system.version.update({'\_id':'authSchema'},{$set:{'currentVersion':3}})

在这里插入图片描述

2)db.system.version.find() # 查看系统的信息,可以看到认证方式已经变为3了

在这里插入图片描述

3)创建数据库并创建用户

//创建数据库命令:

use Map

//为上面创建的数据库创建对应的用户;

db.createUser({user: "supermap",pwd: "123456",roles: [{role: "dbOwner", db: "Map"}]})

在这里插入图片描述

4)查看用户是否创建成功,已经查看用户信息,可以发现用户认证方式为MONGODB-CR

use admin

db.system.users.find({user:'supermap'})

在这里插入图片描述

5)停掉服务,然后以认证方式启动服务

mongod --dbpath D:\MD3.4\mongodb\data\db --setParameter authenticationMechanisms=MONGODB-CR --auth

更多详细步骤可以参考技术博客: https://blog.csdn.net/supermapsupport/article/details/122128422

(3)MongoDB 4.4版本

1)在MongoDB的安装目录下找mongod.cfg文件,打开该文件后找到安全认证的设置,去掉注释即为开启认证模式。
在这里插入图片描述

2)重启MongoDB服务,让修改配置项生效

在这里插入图片描述

3)验证是否开启认证模式

在MongoDB\Server\4.4\bin目录下打开cmd命令运行mongo.exe,查看数据库dbs,发现查询结果为空则代表开启认证模式成功

//进入mongo

mongo.exe

//查看数据库

show dbs

在这里插入图片描述

4)创建认证模式下的用户及密码

//创建数据库

use map

//为上面创建的数据库创建对应的用户及密码

db.createUser({user: "supermap",pwd: "123456",roles: [{role: "root", db: "admin"}]})

在这里插入图片描述

5)查看用户是否创建成功

//查看当前使用的数据库

db

//查看当前数据库下的用户

show users

在这里插入图片描述

6)验证用户是否可以访问数据库

//以认证模式登录数据库

db.auth("supermap","123456")

//查看数据库

show dbs

在这里插入图片描述

更多详细步骤可以参考技术博客https://blog.csdn.net/supermapsupport/article/details/127766208

2、MongoDB 二维瓦片管理

当瓦片储存类型为 MongoDB 型时,生成的瓦片切片文件,以分布式格式存储在服务器的数据库中,而本地会生成一个索引文件(*.sci)。MongoDB 类型的分布式切图服务,只支持5.0版本的瓦片。

与其他类型相比,MongoDB 型存储方式有以下优势:

  • 切片存储于服务器中,地图切片的存取速度较快。
  • 以分布式格式进行存储,便于数据分享与发布。
  • MongoDB 中存储的瓦片数据支持直接进行拷贝提取,可将数据从一个 MongoDB 服务器拷贝到另一个 MongoDB 服务器,有利于数据传输与备份。

同时支持对瓦片数据进行管理,通过可视化界面,加载并查看不同瓦片数据的比例尺、坐标系、瓦片类型、瓦片范围等瓦片信息,同时支持合并、提取、类型转换等管理操作。

(1)二维瓦片在MongoDB中的表结构说明

1)metadatas结构

字段名称字段类型描述
scaleDenominatorsDOUBLE切图比例尺分母数组
originalPointPOINT2D切图索引的起始,计算瓦片行列号的起始坐标点,默认为地图左上角。
resolutionsDOUBLE地面分辨率数组,单位是"坐标系单位/像素"
tileWidthINT32瓦片宽度,单位"像素"
mapStatusHashCodeSTRING地图状态相关参数的哈希码
transparentBOOLEAN图片是否透明
mapParameterNULL原始地图的地图参数
tileTypeSTRING瓦片的类型
tileFormatSTRING缓存图片格式
boundsRECTANGLE2D瓦片范围
tileRuleVersionSTRING瓦片规则的版本
prjCoordSysOBJECT瓦片的坐标系
mapNameSTRING原始地图名
tileHeightINT32瓦片高度,单位"像素"
tilesetNameSTRING瓦片集名称,是瓦片集的唯一标志
tileversionsARRAY切片版本数组,一个切片集中可以有多个切片版本
indexBoundsOBJECT索引范围
highResolutionBOOLEAN是否为高分辨率

2)tiles_{tilesetName}结构

字段名称字段类型描述
resolutionDOUBLE瓦片的分辨率,精确到小数点后6位
tile_columnLONG瓦片的列号,是瓦片在x方向上的索引
tile_rowLONG瓦片的行号,是瓦片在y方向上的索引
tile_idSTRING瓦片内容的唯一id,该id关联images_{tilesetName}集合的tile_id的字段,用于定位瓦片的二进制
create_timeLONG瓦片创建的时间戳
nameSTRING图片名称
tile_formatNameSTRING图片的类型

3)images_{tilesetName}结构

字段名称字段类型描述
tile_idSTRING瓦片内容的唯一id ,该id 关联tiles_{tilesetName}集合的tile_id的字段,用于定位瓦片的二进制
tile_dataBYTE瓦片的二进制

4)styles_{tilesetName}结构

字段名称字段类型描述
nameSTRING风格名称,桌面生成时默认与mapName相同,如果设置同名时会被覆盖。
versionSTRING此风格对应的版本标识
descriptionSTRING用于对风格进行描述
styleBYTE风格内容(json风格文件)
sprite_imageBYTE点符号,栅格填充符号集合
sprite_jsonSTRING点符号,栅格填充的符号描述信息
sprite_image_x2BYTE内容与sprite_image一样,只是放大2倍,在高分屏中使用该符号进行显示
sprite_json_x2STRING内容与sprite_json格式一样,只是时针对sprite_image_x2进行描述的
thumbnailBYTE该风格的缩略图

5)fonts结构

字段名称字段类型描述
fontnameSTRING字体名称
filenameSTRING文件名称(字符区段值范围)。如0-255.pbf
FontdataBYTE字体pbf二进制数据

(2)生成MongoDB瓦片

1)服务器名称:用于设置 MongoDB 服务器地址,例如:192.168.120.42。

2)数据库名称:用于设置数据库名称。若服务器是以非用户验证方式启动 MongoDB,则可单击下拉按钮选择服务器中已存在的数据库,或直接输入新数据库名称创建一个数据库;若服务器以用户验证方式启动 MongoDB,则不支持新建数据库,也不能读取到已有的数据库名称,只能在文本框中输入已存在数据库名称。同时在用户验证模式下启动数据库服务,可以在"用户名"和"密码"中输入管理员用户名和密码,这样数据库名称下拉项中就可以看到库中已存在的数据库名称。

3)用户名称/密码:若数据库已存在,则需输入该数据库对应的用户名称和密码;若为新建的数据库,则需用户设置数据库用户名称和密码。

在这里插入图片描述

(3)生成MongoDB(多版本)瓦片

多版本瓦片,一般是同一区域的不同时刻、不同内容的瓦片,应用于多时态数据,即通过生成多版本瓦片的方式来管理不同时刻不同内容的瓦片。通过版本控制当前只显示一个瓦片内容,从而展现一个地理空间数据随时间变化的动态效果。

传统瓦片只是研究某一个区域空间数据当下的空间信息,只反应数据当前的一个情况,是静态的,不能回看历史,也不能预测未来。多版本瓦片加入了时间的元素,可以展示地理实体或者现象的空间、属性随时间的变化而变化。研究该地理实体和现象的发展过程,以及分析其变化规律。

多版本瓦片特征:

  • 多版本瓦片的重要特征之一是具有版本标识,在生成瓦片的同时要为该瓦片指定一个对应的版本名称,用以标识该瓦片。
  • 生成多版本瓦片,瓦片只支持存储在 MongoDB 数据库中。

1)存储类型:在生成多版本瓦片中,需设置存储类型为"MongoDB(多版本)";

2)版本名称:为当前输出的瓦片指定一个版本名称,用来标识该瓦片。关于版本名称的写法完全由用户的需求而定,这里不做限制。如果在版本名称下拉框中选择已有瓦片版本名称,则可以对该版本已有瓦片进行更新。

  • 若要放到一个多版本瓦片中管理,接下来的瓦片生成设置中,每个版本必须使用相同的瓦片配置文件名称和相同数据库名称,各版本的瓦片名称及数据库名称必须保持一致。

  • 多个版本瓦片之间,需要比例尺和地图瓦片索引范围保持一致。如果用户设置上不保持一致,可能导致瓦片出现问题。

在这里插入图片描述

(4)瓦片提取

SuperMap iDesktopX 产品支持瓦片提取功能,通过指定特定比例尺及自定义提取范围,实现瓦片数据的提取管理。

应用场景:大范围瓦片数据的提取,可指定提取区域及瓦片比例尺,免去用户常规裁剪、提取等繁琐的操作过程。例如,当某省需要将高清影像数据提取给各区市县,只需要将区市县的行政边界作为提取范围,即可将瓦片提取至对应区域。同时还可指定提取比例尺,当精度过高的数据,在提取时需要限制数据精度级别,则可通过选择比例尺,无需重复切图,即可便捷快速的提取数据。

在这里插入图片描述

操作说明:

1)添加待提取瓦片 :添加 MongoDB 瓦片或本地瓦片。

在这里插入图片描述

2)提取瓦片 : 在瓦片管理面板单击工具条中的"提取"按钮。

在这里插入图片描述

3)弹出提取瓦片对话框,在对话框内设置如下参数:

  • 瓦片名称 :通过下拉选项,选择待提取瓦片,默认显示为瓦片管理列表框内的第一条记录。

  • 比例尺 :比例尺列表框中显示当前地图瓦片的比例尺,勾选复选框,确定提取比例尺。

  • 提取范围 :对提取瓦片范围进行设置。应用程序提供四种设置方式:整幅地图、当前窗口、自定义范围以及复制粘贴范围。

当使用选择对象设置范围时,需先将范围面图层添加至当前瓦片管理窗口,才可使用选择对象选项,程序将按照选择对象的外接矩形作为提取范围。

  • 结果设置 :设置存储提取数据的MongoDB数据库,包含服务器名称、数据库名称、瓦片名称等参数信息。

4)完成上述参数设置,即可执行提取瓦片的操作。

在这里插入图片描述

在这里插入图片描述

(5)瓦片合并

SuperMap iDesktopX 支持瓦片合并功能,将指定本地瓦片或者 MongoDB 瓦片转存到目标 MongoDB 数据库中,目标 MongoDB 数据库可以是已有,同时也支持转存至新建 MongoDB 数据库。

应用场景:整合不同区域的数据或同一区域不同时期的数据,避免了用户重复切图,提升了工作效率。

瓦片合并条件

在进行 MongoDB 瓦片合并前需确保本机启动了 MongoDB 服务,同时合并的瓦片还需要具备以下条件:

  • 合并瓦片的坐标系一致。
  • 瓦片块大小一致。
  • 合并瓦片的源点坐标一致,源点坐标即索引范围一致,可在生成地图瓦片时对瓦片范围参数设置时调整成一致。
  • 合并瓦片的图片类型相同。

注意 :合并瓦片必须同时满足以上四个条件,合并才能成功,否则将提示合并失败。

支持合并的瓦片类型

  • 栅格瓦片:WEBP、PNG、DXTZ、GIF、JPG、JPG_PNG、PNG8。
  • 矢量瓦片

合并方式

支持本地瓦片与 MongoDB 瓦片之间相互合并,具体分为:

  • 支持本地瓦片与 MongoDB 瓦片之间进行合并;
  • 支持 MongoDB 瓦片与 MongoDB 瓦片之间进行合并;
  • 本地与本地瓦片合并存储为 MongoDB 瓦片。

瓦片合并重叠部分处理:

栅格瓦片合并

  • 当选择合并的瓦片图片类型为 PNG 且背景透明时,瓦片重叠区域程序会做融合处理,可用于处理数据合并接边的问题。

  • 当选择合并的瓦片类型为 JPG_PNG 格式时,对于包含无效数据像元的切片(地图边界处),其文件格式为 PNG,否则为 JPG 格式,瓦片重叠区域程序可根据瓦片是否包含无效数据像元来自动判断使用哪种格式,可用于解决瓦片接边处的白图问题。

  • 除上述两种瓦片类型,其他类型合并瓦片的重叠区域均按照瓦片合并顺序进行覆盖操作。

矢量瓦片合并

  • 矢量瓦片数据:合并重叠区域的矢量瓦片均按照瓦片合并顺序进行覆盖操作。

  • 瓦片风格:若合并的矢量瓦片风格不一致,按照合并顺序,后一同名风格文件会被替换,不同名的风格文件会被保留。

在这里插入图片描述

操作说明:

1)添加瓦片 :支持添加 MongoDB 瓦片和本地瓦片。

在这里插入图片描述

2)合并瓦片 : 在瓦片管理面板单击工具条中的"合并"按钮。

在这里插入图片描述

3)弹出合并 MongoDB 瓦片对话框。

4)在对话框的左侧设置合并数据的存储方式,程序提供两种方式:

  • 方式一: 合并至已有 ,即将多个版本的数据合并至已存在的某一版本的瓦片数据中,可单击右侧下拉框,在下拉列表中选择瓦片名称。

  • 方式二: 合并至新建 ,即设置新的 MongoDB 数据库作为合并后数据的存放位置。输入以下MongoDB 瓦片参数:服务器名称、数据库名称、及设置合并后瓦片的名称(即瓦片根目录的名称)。

5)在对话框右侧设置区域,设置参与合并的瓦片、合并顺序以及合并后的目标版本:

  • 参与合并版本:在瓦片列表前勾选参与合并的瓦片;

  • 瓦片顺序:列表中瓦片的上下顺序影响合并结果,通过瓦片列表框上侧的顺序调整按钮,调整瓦片的合并顺序。合并操作顺序是由上到下依次进行。

6)目标版本 :支持将多版本合并为一个版本,同时支持合并至一个数据库下多个版本。

  • 若要将多个版本合并为一个版本,此处目标版本的名称应设置为同一名称;例如将四川省和青海省两省的电子地图合并为一份数据,此处目标版本名称一致。

  • 若是将不同数据库的不同版本合并至当前数据库的多版本,则可保持不同版本的名称,即为同一数据库下不同版本。例如将分别在5个数据库的不同月份的降水数据合并到一个数据库下的不同版本,此处保持不同版本名称。

7)边界数据集:当待合并瓦片为栅格瓦片时(除DXTZ、GIF格式外),支持添加边界数据集以提高重叠区域合并接边的效率。边界数据集需要包含待合并瓦片在重叠区域中的共同边界。注意:该功能目前仅在待合并瓦片均为MongoDB瓦片时生效。

8)开启多进程 :支持设置多进程进行瓦片合并,用户可根据机器资源合理设置进程数,提升合并性能。

9)单击确定按钮,执行合并操作,合并完成后,在输出窗口会给出合并成功的提示。可在瓦片管理界面重新添加,使用冲突检测功能检查合并后的瓦片数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKChDyaJ-1672384583827)(RackMultipart20221230-1-gn1mgw_html_c1b8a716098cffac.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JghPLZVC-1672384583827)(RackMultipart20221230-1-gn1mgw_html_a72f34575be08859.png)]

(6)类型转换

瓦片类型转换支持本地原始瓦片、本地紧凑瓦片和MongoDB瓦片之间的相互转换。

应用场景:适应不同场景所需的存储瓦片类型,避免了用户重复切图,提升了工作效率。

在这里插入图片描述

操作说明:

1)添加待转换的瓦片。

在这里插入图片描述

2)类型转换 : 在瓦片管理面板单击工具条中的"类型转换"按钮。

在这里插入图片描述

3)弹出类型转换对话框,详细参数如下:

  • 瓦片名称:选择待转换的瓦片名称

  • 存储类型:选择目标转换类型,支持本地紧凑、本地原始、Mongo瓦片。

  • 目标SCI路径:输入本地瓦片的本地路径。

  • 服务器地址:输入存储地图瓦片的 MongoDB 服务器的地址。

  • 数据库名称:输入存储地图瓦片的数据库名称。

  • 瓦片名称:输入地图瓦片的名称,即瓦片根目录的名称。

  • 用户名称/密码:若数据库设置了用户名和密码,则需输入该数据库对应的用户名称和密码。

  • 开启多线程:支持设置多进程进行瓦片类型转换,用户可根据机器资源合理设置进程数,提升合并性能。

4)点击 确定,执行类型转换操作。

在这里插入图片描述

3、MongoDB 三维瓦片管理

SuperMap iDesktopX 产品支持将三维瓦片存储到MongoDB 库中,数据存入MongoDB 数据库后,会在指定路径生成配置文件。

(1)三维瓦片在MongoDB中的表结构说明

1)metadatas结构

字段名称字段类型描述
TilesetNameSTRING瓦片集名称,是瓦片集的唯一标志
VersionSTRING瓦片版本号
DataTypeSTRING三维地理空间数据类型
FileTypeSTRING文件类型
RenderModeSTRING渲染模式
TileSplitTypeSTRING瓦片划分类型
AttributeExtentNameSTRING属性扩展名称
VertexCompressionTypeSTRING顶点压缩类型
PositionSTRING插入点,单位为度
GeoBoundsSTRING地理空间范围
CrsSTRING瓦片参考坐标系
TileInfoSTRING瓦片信息
AttachFilesSTRING附加文件
PointCloudLayersSTRING点云数据
HeightRangeSTRING高度范围
WDescriptSTRINGw位描述信息

2)Tileset_{tilesetName}结构

字段名称字段类型描述
Tileset_KeySTRING瓦片集根节点的信息
Tileset_ValueBINARY瓦片集根节点的信息

(2)连接MongoDB数据库

操作说明:

1)三维数据选项卡->三维瓦片->瓦片管理->连接数据库按钮,弹出连接数据库窗口。

2)连接信息:设置 MongoDB 服务器和数据库的相关信息,在使用该功能前,需先启动 MongoDB 服务,参数说明如下:

  • 服务器名称:输入服务器的 IP 地址。
  • 数据库名称:只能在文本框中输入已存在数据库名称。
  • 用户名称:输入MongoDB 数据库的用户名称。
  • 用户密码:输入进入 MongoDB 数据库的密码

在这里插入图片描述

3)连接MongoDB数据库成功后,会在瓦片管理界面显示当前数据库中已有的瓦片数据。

在这里插入图片描述

(3)三维瓦片查删操作

连接数据库后,在瓦片管理界面中选中瓦片数据节点,单击右键,将瓦片数据添加到场景中或删除。

注意: 对 MongoDB 数据库中瓦片的删除操作是不可恢复的。

在这里插入图片描述

(4)三维瓦片保存到MongoDB

操作说明:

1)三维数据选项卡->三维瓦片->瓦片管理->保存到MongoDB 按钮,弹出保存到MongoDB 窗口。

2)文件列表:显示添加的配置文件。从左到右图标使用方式为:添加配置文件、删除列表中已选的配置文件、设置是否显示配置文件的绝对路径。

3)连接信息:设置 MongoDB 服务器和数据库的相关信息,在使用该功能前,需先启动 MongoDB 服务,参数说明如下:

  • 服务器名称:输入服务器的 IP 地址。

  • 数据库名称:只能在文本框中输入已存在数据库名称。

  • 用户名称:输入MongoDB 数据库的用户名称。

  • 用户密码:输入进入 MongoDB 数据库的密码

4)输出配置文件:设置参数说明如下:

  • 目标路径:用于设置新生成的 *.scp 文件保存路径,可单击该组合框右侧按钮,选择文件保存路径,或在文本框中直接输入保存路径。目标文件的默认保存路径与源配置文件的路径一致。

  • 数据名称:用于设置和显示倾斜摄影数据在 MongoDB 数据库中的保存名称。

  • 纹理压缩格式:当倾斜摄影数据保存到MongoDB 数据库时,此参数控件才会显示。目前支持七种压缩类型:WebP、DXT(PC设备)、PVRTC(iOS系列设备)、ETC(Android系列设备)、CRN_DXT5(PC设备)、标准CRN、KTX2.0,默认为DXT(PC设备)。对于不同用途的数据,采用不同的纹理压缩方式,可以减少纹理图像所使用的显存数量。

(1)WebP:适用于 Web端/PC机上通用的压缩纹理格式。数据总量减少,提高传输性能。

(2)DXT(PC设备):适用于 PC 机(个人计算机)上通用的压缩纹理格式。显存占用减少,提升渲染性能,但是数据总量会增加。

(3)CRN_DXT5(PC设备):显存占用少许减少,数据总量大幅度减少,但是需要较长的处理时间。

(4)标准CRN:显存占用少许减少,数据总量大幅度减少。处理相同数据,所需时间比CRN_DXT5长。

(5)KTX2.0:显存占用少许减少,数据总量大幅度减少。处理相同数据,所需时间比标准CRN长。

5)设置完以上参数后,单击"确定"按钮,即可执行数据保存到MongoDB数据库的操作。

在这里插入图片描述

七、可能遇到的报错及解决办法

1、Oracle类

问题一:Oracle报错:ORA-12541: TNS:no listener

解决办法:

(1)检查监听地址是否正确:打开"开始"菜单,找到Oracle的Net Manager,找到LISTENER,检查地址是否包含:本地访问127.0.0.1

在这里插入图片描述

(2)检查服务是否启动:打开"服务",找到OracleOraDb11g_home1TNSListener,如果没有运行请手动启动,如果已经在运行则重启该服务。

在这里插入图片描述

问题二:桌面软件中打开Oracle数据源的按钮显示为灰色不可用,是什么原因?

解决办法:

1.安装Oracle客户端;

2.Oracle位数和iDesktop一致;

3.使用第三方工具检查是否可以连接;

4.检查环境变量的PATH路径是否有Oracle安装路径,如果没有,手动添加进去

问题三:直接在Oracle数据库中成功删除某条数据,但是桌面软件打开数据集查看属性表会出现一条空的记录?

解决办法:

直接在Oracle数据库中删除数据表只会删除数据的属性、空间关系等,但是不会删除数据的记录条数,这是由另一张表SmRegister里面的smrecordcounts字段控制的,还需要修改这个值才可以。

在这里插入图片描述

问题四:打开Oracle数据源失败,提示"无系统表,且非扩展展开"

解决办法:

无系统表说明该用户名没有在桌面中创建数据源,需要先新建数据库型数据源。

问题五:创建Oracle数据源失败,提示"该用户名已存在数据源"

解决办法:

这个错误说明该用户名已经是我们的数据源了,可以直接打开,需要注意的是Oracle是一个用户名对应一个数据源,如果需要创建多个数据源可以新建多个用户名。

问题六:本机配置好Oracle数据库的客户端后,连接远程服务器的Oracle数据库,在iDesktop新建数据库数据源报错“ORA-28040 No Matching authentication protoco

问题原因:

本机Orcale客户端版本和访问的Oracle服务端的版本不一致

解决办法:

在本机安装与远程电脑的Oeacle服务端一样的客户端版本即可。

问题七:Linux系统如何正确连接Oracle11g的客户端

解决办法:
1、下载客户端包,链接:https://note.youdao.com/ynoteshare/index.html?id=fac82b258082f4b3eadff3d092888619&type=note&_time=1688433689671

2、设置环境变量:在这里插入图片描述
3、修改tnsnames.ora文件

orcl=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.65)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

2、MySQL类

问题一:MySQL报错:保存工作空间失败,sxwu中读取XML信息失败,MySQL Got a packet bigger than ‘max_allowed_packet’ bytes,如何修改?

解决办法:

my.ini中max_allowed_packet这个默认值太小了数据没法传输进去,导致保存失败了,将值改大一些,再重启服务。

在这里插入图片描述

问题二:MySQL数据源不支持保存中文名称的数据集吗?

解决办法:

可以支持中文名称,以保证不乱码,需要在my.ini文件里面设置一下默认的字符集编码为utf8,然后重启服务。

在这里插入图片描述

问题三:MySQL每隔8小时就会自动断开,怎么解决?

解决办法:

修改MySQL配置参数wait_timeout,其默认值为 28800秒(8小时)。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL会主动断开这个连接。

在这里插入图片描述

问题四:桌面软件新建MySQL数据库型数据源失败是什么原因?

具体报错:

[error] 值域表 SmDomains 创建失败,

[error] Failed Exec strSQL : SELECT a.DomainID,a.DomainName,a.DomainDescription,a.DomainType,b.FieldType,b.DomainRangeInfos FROM kjsj.SmDomains a, kjsj.SmRangeDomains b WHERE a.DomainID=b.DomainID-Unknown error 1146,

[error] Failed Exec strSQL : CREATE TABLE kjsj.SmDomains(DomainID INT NOT NULL PRIMARY KEY,DomainName VARCHAR(64) NOT NULL,DomainDescription VARCHAR(256),DomainType INT NOT NULL) ENGINE = MyISAM-Unknown error 3161

问题原因:

客户部署的MySQL使用的innodb引擎,iDesktop默认MySQL使用myisam引擎,导致创建系统表时失败。

解决办法:

打开在iDesktop安装目录的Bin文件夹下面的SuperMap.xml配置文件,修改MySQLEngineType参数为对应引擎,重启iDesktop,重新新建数据库型数据源即可。MySQLEngineType参数如下:

<!–MYISAM:1, InnoDB:2MEMORY:3,NDB:4 after 802–>

<MySQLEngineType>1</MySQLEngineType>

问题五:桌面软件创建MySQL数据源失败,日志报错:Plugin sha256_password could not be loaded,是什么原因?数据库版本是mysql 5.7.x,同样的用户和密码在Navicat可以打开。

问题原因:

在MySQL 5.7.X版本的数据库里提供两种身份验证插件mysql_native_password和sha256_password。默认应该是mysql_native_password。出现报错的用户应该使用了sha256_password插件,目前桌面产品里未集成该插件库。

解决办法:

目前有两种办法可以解决:
1、将Navicat目录下的sha256_password.dll插件库拷贝到iDesktopX的Bin目录即可。
2、修改该用户的身份验证插件为mysql_native_password即可,步骤如下:
// 系统用户登录,查看所有用户及对应身份验证插件
SELECT user, host, plugin from mysql.user;
// 修改对应用户的身份验证插件
alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘密码’;
// 更改生效
FLUSH PRIVILEGES;
// 再次查询用户对应身份验证插件为mysql_native_password即可,再启动iDesktopX进行mysql数据源创建。
注:从 MySQL 8.0 开始,默认的身份验证插件已更改为caching_sha2_password。

问题六:桌面软件创建MySQL数据源失败,日志报错:ERROR 1045 (28000): Access denied for user ‘root’@‘127.0.0.1’ (using password: YES),是什么原因?数据库版本是mysql 5.7.x。

问题原因:

mysql数据库安装的默认用户或第一次创建的用户,没有远程连接权限。

解决办法:

数据库服务端登录,开启用户的远程登录权限,步骤如下:
// 本地连接上数据库,执行开启远程权限语句
GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘admin123456’ WITH GRANT OPTION;
// 配置生效,再次远程连接即可
flush privileges;

问题七:桌面软件远程连接MySQL数据源失败,日志报错:Host is not allowed to connect to this MySQL server,是什么原因?数据库版本是mysql 5.7.x。

问题原因:

数据库服务端未配置host,导致无法远程连接。

解决办法:

数据库服务端登录,开启用户允许远程登录的机器为所有,步骤如下:
1、在装有MySQL的机器上登录MySQL mysql -u root -p密码;
2、执行use mysql;
3、执行update user set host = ‘%’ where user = ‘supermap’;
4、执行FLUSH PRIVILEGES;

问题八:win环境上桌面软件导入60+MB大小的符号库资源文件后,保存为MySQL工作空间失败,日志报错:[error] SHOULD_SET_LARGE_PACKET_SIZE,是什么原因?数据库版本是mysql 5.7.x。

问题原因:

这是由于mysql数据库的字符缓冲区大小或blob类型大小限制导致的。

解决办法:

  1. 修改windows的my.ini或Linux下的my.cnf文件中的变量(默认只有4m):
    max_allowed_packet=256m
  2. 重启mysql服务,然后连接mysql查看是否生效了:
    mysql -u root -p
    show VARIABLES like ‘%max_allowed_packet%’;

问题九:win环境上桌面软件在mysql数据源中创建镶嵌数据集,添加中文路径下的影像文件后,打开镶嵌数据集在地图显示空白,日志报错:Incorrect string value: ‘\xE6\x98\x9F\xE7\xBA\xA7…’ for column ‘SmPath’ at row 1,这是什么原因?若是关闭该mysql数据源也会导致桌面崩溃。

问题原因:

如果添加英文路径下的影像文件没有该问题,那么就是是数据库的编码导致问题。

解决办法:

修改mysql数据库的编码为utf8或者直接改对应库的编码。在Navicat连接上,编辑该库修改如下:
字符集=utf8mb4
排序规则=utf8mb4_general_ci

3、DM类

4、PostgreSQL类

问题一:桌面软件新建PostgreSQL数据源报错:“relation “sm_seq_datasource” already exists”,如何解决?

解决方法:

该报错为有库或表重复问题,具体可以从以下三方面排查:

(1)检查用户操作是否合法,是否已存在库名和新建数据源名称一样;

(2)PostgreSQL区分大小写,PostgreSQL对大小写敏感,PostgreSQL官方推荐命名方式都是小写+下划线,比如系统索引表命名:pg_indexes;

(3)检查是否因为主键约束名等于表名,创建主键约束期间触发了错误"关系已存在"

4、其他

问题一:桌面打开数据库型数据源报错could not create index “idx_smregister”,如何解决?

解决方法:

连接对应的数据库,找到smregister表,删除表中的重复数据。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Openbravo数据库是一个开源的关系型数据库管理系统,它是Openbravo企业资源规划(ERP)软件的一部分。Openbravo数据库使用PostgreSQL作为底层数据库引擎。 Openbravo数据库具有以下特点: 1. 开源性:Openbravo数据库是基于开放源代码的软件,任何人都可以查看、修改和分发该软件。这使得用户可以自由地使用和定制Openbravo数据库,以满足他们的特定需求。 2. 关系型数据库管理系统:Openbravo数据库采用关系型数据库模型,使用表和关系来组织和存储数据。这使得数据的管理和查询更加方便和有效。 3. 基于Web的用户界面:Openbravo数据库提供了一个基于Web的用户界面,使用户可以通过浏览器轻松地访问和管理数据库。这使得用户可以在任何时间、任何地点通过互联网访问数据库。 4. 强大的数据分析功能:Openbravo数据库提供了各种数据分析工具和功能,使用户能够对数据进行详细的分析和报告。这有助于用户更好地理解和利用他们的数据。 5. 可扩展性:Openbravo数据库具有良好的可扩展性,用户可以根据他们的需求增加或删除数据库的表、字段和记录。这使得用户可以根据他们的业务需求自定义和调整数据库结构。 6. 多用户支持:Openbravo数据库支持多个用户同时访问和使用数据库。这使得多个用户可以在同时工作而不会对数据库造成冲突。 总之,Openbravo数据库是一个开源的关系型数据库管理系统,它具有灵活、易用和强大的特性,可以满足用户对数据管理和分析的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值