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

针对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 中查看该数据集的编码类型将显示为“未编码”。

相关主题

打开外部矢量文件

新建数据源

管理数据源