ArcGIS转GDB导入超图后空间查询失效?一个复制操作轻松修复

2026-06-03 开发技术 4 次阅读 0 次点赞
本文介绍了在使用SuperMap iDesktop 11i和iServer 11i时,从ArcGIS导出的gdb文件导入超图数据后,空间查询REST API无法返回数据,而条件查询正常的问题。原因可能是导入时数据集内部元数据异常,导致空间索引无法正常建立。解决方法是通过复制数据集(如GasTiaoYaXiang)生成新数据集,删除原数据集后重命名,超图会重新生成完整的元数据和空间索引,从而恢复空间查询功能。操作前需确保磁盘空间充足并备份数据。

环境说明

  • SuperMap iDesktop 11i
  • SuperMap iServer 11i
  • DM Database Server 64 V8

问题现象

从ArcGIS导出gdb文件并导入超图数据源后,新导入的数据集在使用空间查询REST API时无法查询出任何数据,但条件查询功能完全正常。

查询示例

请求:

http://localhost:8090/iserver/services/map-Distribution/rest/maps/Distribution/queryResults.json?returnContent=true

方法: POST

负载:

{
    "queryMode": "SpatialQuery",
    "geometry": {
        "type": "REGION",
        "parts": [5],
        "points": [
            {"x": -20037508.342789244, "y": -44927335.42708395},
            {"x": 20037508.342789244, "y": -44927335.42708395},
            {"x": 20037508.342789244, "y": 44927335.42708395},
            {"x": -20037508.342789244, "y": 44927335.42708395},
            {"x": -20037508.342789244, "y": -44927335.42708395}
        ]
    },
    "queryParameters": {
        "queryParams": [{
            "name": "GasTiaoYaXiang@DMPlus",
            "attributeFilter": "SMID > 0"
        }],
        "startRecord": 0,
        "expectCount": 100000,
        "queryOption": "ATTRIBUTEANDGEOMETRY",
        "returnFeatureWithFieldCaption": true
    },
    "spatialQueryMode": "INTERSECT"
}

响应:

{
    "recordsets": [{
        "datasetName": "GasTiaoYaXiang@DMPlus",
        "features": [],
        "fieldCaptions": ["", "", ...],
        "fieldTypes": ["INT32", "DOUBLE", ...],
        "fields": ["SMID", "SMX", ...]
    }],
    "totalCount": 0,
    "currentCount": 0,
    "customResponse": null
}

已知情况

  • 数据集和查询语句均使用Web墨卡托投影(EPSG:3857)
  • 条件查询REST API完全正常
  • 重建空间索引和重新计算范围后,空间查询仍然无数据
  • 除新导入的数据集外,其他数据集空间查询正常

解决方法

操作步骤

1、复制数据集

右键点击有问题的数据集(例如:GasTiaoYaXiang),选择"复制数据集",将数据集复制为GasTiaoYaXiang_1。

iDesktop右键菜单复制数据库

iDesktop复制数据集对话框

2、删除原数据集

删除原始的GasTiaoYaXiang数据集。

3、重命名数据集

将GasTiaoYaXiang_1重命名为GasTiaoYaXiang。

iDesktop重命名数据集

完成以上操作后,空间查询功能即可恢复正常。

原因分析

该问题可能是由于从gdb导入时,数据集的内部元数据信息存在异常或不兼容,导致空间索引无法正常建立或识别。通过复制数据集的方式,超图会重新生成完整的数据集元数据和空间索引结构,从而解决空间查询失效的问题。

注意事项

  • 执行复制操作前请确保有足够的磁盘空间
  • 如果数据量较大,复制过程可能需要一定时间
  • 建议在操作前备份原始数据
最后更新于3小时前
本文由人工编写,AI优化,转载请注明原文地址: ArcGIS转GDB导入超图后空间查询失效?一个复制操作轻松修复

评论 (0)

登录 后发表评论

暂无评论,快来发表第一条评论吧!