URI

<dataset_uri>/grid3dintersection[.<format>]

支持的方法

GETPOSTHEAD

父资源

dataset

子资源

介绍

数据集三维网格相交判断资源。该资源支持判断指定数据集与目标数据集或几何对象在三维网格层级上是否有空间冲突关系。

支持两种相交判断模式:数据集(通过配置目标数据集与源数据集相交)和几何对象(通过配置目标几何对象与源数据集相交)。目标数据集配置与目标几何对象配置,仅可设置其一生效。当前版本仅支持 GeoSOT 网格类型。

对该资源发送 POST 请求,可以执行数据集三维网格相交判断。

支持的方法:

  • GET:返回一个进行 POST 请求的表单。
  • POST:执行数据集三维网格相交判断。
  • HEAD:检查 grid3dDatasetIntersection 资源是否存在,或权限是否可以访问该资源。

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

HTTP 请求方法

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

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

GET 请求

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

POST 请求

执行数据集三维网格相交判断。源数据集由 URI 中的 {datasetName} 指定。

请求参数

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

名称 类型 含义
gridType Spatial3DGridType 【可选参数】三维网格类型,默认为 GEOSOT。
sourceDatasetInput Dataset3DGridInput 【必填参数】源数据集输入配置。datasetName 由 URI 自动填充。支持几何列模式(geometryColumnName,默认 "smgeometry")和网格列模式(gridColumnName)。支持 filter 筛选。几何列模式下可设置 gridLevel(网格层级),一般建议最高使用 24-25 层级,过高的层级会导致网格数量过多,可能超出数据库的限制。
targetDatasetInput Dataset3DGridInput 【可选参数】目标数据集配置,与 targetGeometryInput 互斥。需指定 datasetName。
targetGeometryInput Geometry3DGridInput 【可选参数】目标几何配置,与 targetDatasetInput 互斥。包含 geometries(Geometry3D[])和 gridLevel(默认 17)。
returnGrid3DPositioning boolean 【可选参数】是否返回相交三维网格定位字符串列表,默认为 false。

响应结构

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

字段 类型 说明
succeed boolean 操作是否成功。
message String 失败时返回的错误信息。
hasIntersection boolean 是否存在相交。
intersectGridCodes String[] 相交网格编码列表,无相交时为空数组 [ ]。
intersectGrid3DPositioning String[] 相交三维网格包围盒字符串列表,格式为 "xmin,xmax,ymin,ymax,zmin,zmax"。仅当 returnGrid3DPositioning=true 时返回。
processingTimeMs long 处理耗时(毫秒)。

响应示例

执行 POST 请求(数据集相交判断模式),请求参数如下:

{
"gridType": "GEOSOT",
"sourceDatasetInput": {"datasetName": null, "geometryColumnName": "geometry", "gridColumnName": null, "gridLevel": 15, "filter": null},
"targetDatasetInput": {"datasetName": "nofly_zone@postgres", "geometryColumnName": "geometry", "gridColumnName": null, "gridLevel": 15, "filter": null},
"targetGeometryInput": null,
"returnGrid3DPositioning": false
}

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

{
"succeed": true,
"message": "",
"status": "FINISHED",
"hasIntersection": true,
"intersectGridCodes": ["G001310322-232132-032220.312,1101", "G001310322-232132-032220.313,1101"],
"intersectGrid3DPositioning": null,
"processingTimeMs": 1234
}

HEAD 请求

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

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

请参见