三方矢量数据直连读写指南 

针对Shapefile、FileGDB、GeoPackage 及 ArcSDE_Oracle 矢量数据,SuperMap 平台提供的直连机制支持直接读取原始数据,并允许用户进行实时浏览、查询、编辑及空间分析等全套操作,同时处理结果可直接保存至第三方矢量文件中。该模式避免了传统流程中数据转换所耗费的时间与可能的信息失真,对于大体量矢量数据,能实现快速接入与高效处理,从而显著提升数据价值利用率。 

表一:三方矢量数据直连功能概览  

本表简要说明三方数据直连的支持情况。图例说明:“√”表表示支持,“×”表示不支持。

支持格式 读取 编辑 分析结果直存 备注
ShapeFile √  × √

采用矢量文件引擎(EngineType.VECTORFILE)连接。

FileGDB √ √ √
  • 采用 ArcSDE Oracle (EngineType.ARCSDE_ORACLE) 连接。
  • 仅支持读取二三维点线面数据。
GeoPackage √ √ ×
ArcSDE_Oracle √ × ×

表二:三方矢量数据直连功能详细说明

本表展示了各功能模块对第三方矢量数据的支持情况。图例说明:“√”表示支持,“×”表示不支持,“--”表示不涉及。

功能模块 功能名称 FileGDB Shapefile GeoPackage 备注
数据源连接 直接打开 FileGDB √ -- -- 打开 FileGDB,需指定FileGDB文件夹路径,打开 Shapefile、GeoPackage,需指定完整路径(包含 .shp、.gpkg 扩展名)。
直接打开 Shapefile -- √ --
直接打开 GeoPackage -- -- √
元数据读取 读取数据范围 √ √ √  
读取坐标系定义 √ √ √  
读取几何类型 √ √ √
  • 支持的数据集类型参考表三。
  • 支持读取几何中的 M 值(参数化对象 M 值不支持)。特别的,FileGDB 原始数据中线/面对象全部坐标点的 M 值均为 NAN 时,将 M 值读取为 0,原始数据中线/面对象部分坐标点的 M 值为 NAN 时,将 M 值读取为 M值域范围的最小值。Shapefile 原始数据中 M 值为 NAN 时,统一读取为 -1.7976931348623157E308。
读取字段结构 √ √ √ 支持的字段类型参考表四。
几何与属性查询 空间查询 √ √ √  
属性查询 √ √ √  
SQL查询 √ √ √
  • 支持的 SQL 查询语法参考表五。
几何与属性编辑 编辑对象 √ × √
  • FileGDB 中的参数化对象编辑后将被拟合成折线,Shapefile、GeoPackage 不支持参数化对象。
  • FileGDB、GeoPackage 的属性数据集仅包含主键字段时,不支持新增记录。
  • FileGDB 原始数据点对象的 M 值为 NAN 时,几何更新后,M 值将自动更新为 M 值域范围的最小值。
新增字段 √ × √
  • 支持的字段类型参考表四。
  • 使用超图平台创建的 WTEXT、CHAR 字段,将自动转为 TEXT 字段。
  • 使用超图平台创建的 DATE 字段,将自动转为 DATETIME 字段。
  • 使用超图平台创建的 BYTE 字段,将自动转为 INT16 字段。
删除字段 √ × √  
修改字段信息(字段名、长度、默认值等) × × ×  
高级特性 值域 × × ×  
子类型 × × ×  
条件值 × × ×  
附件管理 × × ×  
数据集分组 √ -- --
  • 仅支持读取FileGDB数据集分组,不支持创建和修改。
  • 删除数据集分组,仅删除分组下的所有数据集,不会删除分组。
版本管理 × × ×  
属性和空间索引 √ √ √
  • 支持使用文件自带的索引,不支持创建索引。
分析结果直存 将分析结果直接保存为FileGDB √ -- --  
  将分析结果直接保存为Shapefile -- √ --  
  将分析结果直接保存为GeoPackage -- -- ×  
数据集管理 新建、删除、复制、重命名数据集     √ -- √
  • FileGDB仅支持EPSG投影,新建数据集请设置EPSG投影,保证数据正常使用。
多进程/线程 多线程读取 √ √ √  
多进程编辑 × × ×  
事务提交 × × ×  

表三:支持的数据集类型

本表展示了直连数据源中各类数据集的支持情况。图例说明:“√”表示支持读取和编辑,“只读”表示仅支持读取,“×”表示完全不支持或该格式不包含此数据集类型。

数据集类型 FileGDB Shapefile GeoPackage
二三维点线面 √ 只读 √
多点 只读 只读 ×
属性表 √ × √
文本 只读 × ×
关系类 × × ×
网络 × × ×

拓扑

× × ×

表四:支持的字段类型

本表展示了数据集中支持的字段类型。图例说明:“√”表示支持读取和编辑,“只读”表示仅支持读取,“×”表示完全不支持或该格式不包含此数据集类型。

数据集类型 FileGDB Shapefile GeoPackage
INT16 √ 只读 √
INT32 √ 只读 √
INT64 只读 只读 只读
DOUBLE √ 只读 √
SINGLE √ 只读 √
TEXT √ 只读 √
WTEXT × × ×
JSONB × × ×
CHAR × × ×
BOOLEAN × 只读 只读
DATETIME √ 只读 √
DATE × × ×
TIME × × ×
BYTE  × × ×
LONGBINARY √ × √

表五:支持的SQL查询功能

本表展示了 SQL 查询功能中关键字的支持情况。图例说明:“√”表示支持,“×”表示不支持。

SQL查询类别 SQL关键字 支持情况
条件查询 WHERE clause 语句 √
DISTINCT 去重 √
LIKE 模糊匹配 √
IN 值列表匹配 √
BETWEEN 范围匹配 √
聚合与分组 GROUP BY 分组 √
COUNT()、SUM()、AVG()等聚合函数 √
HAVING 分组后过滤 ×
排序与分页 ORDER BY 排序 √
LIMIT 分页 ×
高级查询 JOIN 多表关联查询 ×
SELECT 嵌套查询 ×
UNION 联合查询 ×
AS 别名 √
存储过程/函数 ×
注意事项:
  • Geopackage 文件打开失败,可能是因为包含了 MultiCurve、CurvePolygon、CompoundCurve 几何类型的数据,当前 Geopackage 不支持参数化对象。
  • 新建数据集未设置数据集范围,新增对象的坐标值不允许小于 -2147483647(即不小于 INT32 位的最小取值),否则会导致对象创建失败。如果已预先设置了有效的数据集范围,则新增对象的坐标值不受此限制影响。
  • 复制数据集到矢量文件,如果源数据集存在 INT64 位字段,复制到矢量文件后 INT64 字段会丢失,因为当前版本不支持创建 INT64 字段。
  • Geopackage 的日期(DATETIME)字段进行 SQL 查询时,如果您输入的查询条件值(如 "2025/08/21 17:08:07"),需要修改为文件中实际存储的日期格式("2025-08-21T17:08:07",日期和时间改为"T"连接),才能成功查询出结果,否则查询失败,因为 Geopackage 文件中的 DATETIME 字段采用“YYYY-MM-DDT00:00:00”的格式存储。特别的,如果您使用 SuperMap 平台保存的日期值,这里的查询条件值需修改为 "2025-08-21T17:08:07.000",因为 SuperMap 平台保存的时间精度为毫秒。
  • 在 FileGDB、Geopackage 中新建数据集不支持设置编码类型,这是因为 FileGDB 和 GeoPackage 的字符编码由数据格式自身规范统一管理,SuperMap 不单独维护数据集的编码属性。因此,当将其他数据源中的数据集(如 UDBX 数据源中的数据集)复制到 FileGDB 或 GeoPackage,复制完成后,在 SuperMap 中查看该数据集的编码类型将显示为“未编码”。

相关主题

打开外部矢量文件

新建数据源

管理数据源