URI

<dataset_uri>/grid3dgenerator[.<format>]

支持的方法

GETPOSTHEAD

父资源

dataset

子资源

介绍

数据集三维网格生成资源。该资源支持将指定数据集中的三维几何对象批量转换为三维网格编码,并将结果持久化存储到 Yukon 数据库的结果表中。

该资源只针对包含三维几何对象(POINTZ/LINESTRINGZ)的数据集,数据集必须使用 CGCS2000 坐标系(SRID:4490)。用户需指定源数据集的几何列名和 ID 列名。当前版本仅支持 GeoSOT 网格类型。

对该资源发送 POST 请求,可以执行数据集三维网格批量生成。

支持的方法:

  • GET:返回一个进行 POST 请求的表单。
  • POST:批量生成数据集的三维网格编码并持久化存储。
  • HEAD:检查 grid3dDatasetGenerator 资源是否存在,或权限是否可以访问该资源。

支持的表述格式:RJSON、JSON、HTML、XML。

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。

http://supermapiserver:8090/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/datasets/buildings%40postgres/grid3dgenerator.rjson

GET 请求

返回一个进行 POST 请求的表单。

POST 请求

批量生成数据集的三维网格编码并持久化存储到结果表中。

请求参数

请求体中需传递如下参数:

名称 类型 含义
gridType Spatial3DGridType 【可选参数】三维网格类型,默认为 GEOSOT。
geometryColumnName String 【必填参数】源数据集的几何列名。数据集必须使用 CGCS2000 坐标系(SRID:4490)。
idColumnName String 【必填参数】源数据集的唯一 ID 列名,用于外键关联。
gridLevel int 【可选参数】网格层级,范围 1-32,默认为 15。一般建议最高使用 24-25 层级,过高的层级会导致网格数量过多,可能超出数据库的限制。
resultSchema String 【必填参数】结果表所在的 schema 名称。
resultTableName String 【必填参数】结果表名称。
resultGridColumnName String 【必填参数】结果表中网格编码列名。
deleteExistingTable boolean 【可选参数】是否删除已存在的结果表,默认为 false。
filterQueryParameter QueryParameter 【可选参数】查询过滤参数,支持 attributeFilter 和 ids 字段。
registerDataset boolean 【可选参数】是否将结果表注册为 iServer 数据集,默认为 false。
returnGrid3DPositioning boolean 【可选参数】是否返回三维网格定位字符串列表,默认为 false。
returnFields List<String> 【可选参数】返回的额外字段列表。仅当 returnGrid3DPositioning=true 时生效。

响应结构

正常响应情况:响应码 200。响应参数如下:

字段 类型 说明
succeed boolean 操作是否成功。
message String 失败时返回的错误信息。
totalRecordCount int 处理的总记录数。
resultSchema String 结果表所在 schema。
resultTableName String 结果表名称。
foreignKeyColumn String 外键列名。
gridColumnName String 网格编码列名。
processingTimeMs long 处理耗时(毫秒)。
registeredDatasetName String 注册的数据集名称。
gridData List<GridDataItem> 网格数据列表,仅当 returnGrid3DPositioning=true 或 returnFields 不为空时返回。每项含 recordId、gridCodes、grid3DPositionings、extraFields。

响应示例

执行 POST 请求,请求参数如下:

{
"gridType": "GEOSOT",
"geometryColumnName": "geometry",
"idColumnName": "building_id",
"gridLevel": 15,
"resultSchema": "public",
"resultTableName": "building_grid_codes",
"resultGridColumnName": "grid_codes",
"deleteExistingTable": false,
"registerDataset": false,
"returnGrid3DPositioning": false
}

则返回的 rjson 格式的响应结果如下:

{
"succeed": true,
"message": "",
"status": "FINISHED",
"totalRecordCount": 1000,
"resultSchema": "public",
"resultTableName": "building_grid_codes",
"foreignKeyColumn": "building_id",
"gridColumnName": "grid_codes",
"processingTimeMs": 5432,
"registeredDatasetName": null,
"gridData": null
}

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 grid3dDatasetGenerator 资源是否存在,或者客户端是否有权限访问该资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断该资源是否支持<format>格式的表述。

请参见