URI
<dataset_uri>/grid3dgenerator[.<format>]
支持的方法
父资源
子资源
无
介绍
数据集三维网格生成资源。该资源支持将指定数据集中的三维几何对象批量转换为三维网格编码,并将结果持久化存储到 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>格式的表述。
请参见
- dataset,datasets
- grid3dDatasetIntersection
- grid3dGenerator
- 客户端构建 REST 请求
- 状态码列表及说明
- SuperMap iServer REST API 表述格式介绍
- 资源层次结构