iShare 技术 SuperMap空间分析(SpatialAnalyst)服务REST API 20110711 Sun
- 1. SuperMap iServer 6空间分析功能<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr<br />对几何对象(Geometry)或数据集(Dataset)进行缓冲区分析(buffer)、叠加分析(overlay)、等值线(isoline)/面分析, 提供了对应的REST API接口, 可以输出JSON/XML格式的数据<br />Geometry空间分析<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry<br />基于几何对象进行空间分析<br />buffer<br />POST<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/buffer.json<br />{<br /> quot;
sourceGeometryquot;
:{<br /> quot;
typequot;
:quot;
LINEquot;
,<br /> quot;
pointsquot;
:[{quot;
xquot;
:23, quot;
yquot;
:23}, {quot;
xquot;
:33, quot;
yquot;
:37}]<br /> },<br /> quot;
analystParameterquot;
:{<br /> quot;
leftDistancequot;
:{quot;
valuequot;
:2},<br /> quot;
rightDistancequot;
:{quot;
valuequot;
:2},<br /> quot;
endTypequot;
:quot;
ROUNDquot;
,<br /> quot;
semicircleLineSegmentquot;
:4<br /> }<br />}<br />Response<br />{<br /> quot;
succeedquot;
:true,<br /> quot;
newResourceIDquot;
:quot;
1quot;
,<br /> quot;
postResultTypequot;
:quot;
CreateChildquot;
,<br /> quot;
newResourceLocationquot;
:quot;
http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/buffer/1quot;
<br />}<br />分析结果的数据结构<br />GET: http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/buffer/1.json<br />Response<br />{<br /> quot;
succeedquot;
:true,<br /> quot;
messagequot;
:null,<br /> quot;
imagequot;
:null,<br /> quot;
resultGeometryquot;
:{<br /> quot;
idquot;
:0,<br /> quot;
partsquot;
:[4],<br /> quot;
pointsquot;
:[{<br /> quot;
xquot;
:21,quot;
yquot;
:23<br /> },{<br /> quot;
xquot;
:21.66,quot;
yquot;
:21.51<br /> },{<br /> quot;
xquot;
:21.37,quot;
yquot;
:24.16<br /> },{<br /> quot;
xquot;
:21,quot;
yquot;
:23<br /> }],<br /> quot;
typequot;
:quot;
REGIONquot;
,<br /> quot;
stylequot;
:null<br /> }<br />}<br />returnContent=true<br />如果在做buffer分析时添加returnContent=true请求参数, 则会立即返回分析结果, 而不是返回结果的URI, 再读取该URI中的内容才是分析结果<br />例如:<br />POST<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/buffer.json?returnContent=true<br />以这样的方式来请求buffer分析, 则立即返回分析结果<br />overlay<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/overlay.json<br />请求方式和buffer是一致的, 仅是请求的参数有区别, 同样遵循returnContent=true的规则,分析结果的数据结构也是一样的<br />{<br /> quot;
sourceGeometryquot;
:{<br /> quot;
typequot;
:quot;
REGIONquot;
,<br /> quot;
pointsquot;
:[{<br /> quot;
xquot;
:23, quot;
yquot;
:23<br /> },{<br /> quot;
xquot;
:33, quot;
yquot;
:35<br /> },{<br /> quot;
xquot;
:43, quot;
yquot;
:22<br /> }]<br /> },<br /> quot;
operateGeometryquot;
:{<br /> quot;
typequot;
:quot;
REGIONquot;
,<br /> quot;
pointsquot;
:[{<br /> quot;
xquot;
:23, quot;
yquot;
:23<br /> },{<br /> quot;
xquot;
:34, quot;
yquot;
:47<br /> },{<br /> quot;
xquot;
:50, quot;
yquot;
:12<br /> }]<br /> },<br /> quot;
operationquot;
:quot;
CLIPquot;
<br />}<br />isoline<br />http://a.com/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/isoline.json<br />基于采样点提取等值线, 请求方式和buffer是一致的, 同样遵循returnContent=true的规则, 仅是请求的参数有区别<br />{<br /> quot;
pointsquot;
:[{quot;
xquot;
:11.34, quot;
yquot;
:52.01}, {quot;
xquot;
:12.19, quot;
yquot;
:53.68}],<br /> quot;
zValuesquot;
:[-3, -2],<br /> quot;
resolutionquot;
:3500,<br /> quot;
extractParameterquot;
:{<br /> quot;
datumValuequot;
:0,<br /> quot;
intervalquot;
:10,<br /> quot;
resampleTolerancequot;
:0.7,<br /> quot;
smoothMethodquot;
:quot;
BSPLINEquot;
,<br /> quot;
smoothnessquot;
:3<br /> },<br /> quot;
resultSettingquot;
:{<br /> quot;
datasetquot;
:quot;
quot;
,<br /> quot;
expectCountquot;
:100,<br /> quot;
dataReturnModequot;
:quot;
RECORDSET_ONLYquot;
,<br /> quot;
deleteExistResultDatasetquot;
:false<br /> }<br />}<br />分析结果的数据结构<br />{<br />quot;
succeedquot;
: true,<br /> quot;
datasetquot;
: null,<br /> quot;
messagequot;
: null,<br /> quot;
recordsetquot;
: {<br /> quot;
datasetNamequot;
: quot;
tmp3236632130562897681@RS_Y1LEpjZVquot;
,<br /> quot;
featuresquot;
: [{<br /> quot;
IDquot;
: 1,<br /> quot;
fieldNamesquot;
: [quot;
字段名1quot;
, quot;
字段名2quot;
],<br /> quot;
fieldValuesquot;
: [quot;
字段值1quot;
, quot;
字段值2quot;
],<br /> quot;
geometryquot;
: {<br /> quot;
idquot;
: 1,<br /> quot;
partsquot;
: [2],<br /> quot;
pointsquot;
: [{<br /> quot;
xquot;
: 189416.74287234453,<br /> quot;
yquot;
: 5844649.011754164<br /> }, {<br /> quot;
xquot;
: 190176.09529174163,<br /> quot;
yquot;
: 5844086.556968644<br /> }],<br /> quot;
stylequot;
: null,<br /> quot;
typequot;
: quot;
LINEquot;
<br /> }<br /> }],<br /> quot;
fieldCaptionsquot;
: [quot;
字段1说明quot;
, quot;
字段2说明quot;
],<br /> quot;
fieldTypesquot;
: [quot;
INT32quot;
, quot;
DOUBLEquot;
],<br /> quot;
fieldsquot;
: [quot;
字段名1quot;
, quot;
字段名2quot;
]<br /> }<br />}<br />isoregion<br />http://a.com /iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/isoregion.json<br />基于采样点的提取等值面, 请求方式和isoline是一致的, 仅是请求的参数有区别, 同样遵循returnContent=true的规则, 分析结果的数据结构也是一样的, 只不过返回的Geometry类型是面<br />SuperMap iServer几何对象的JSON格式<br />SuperMap iServer 的几何对象(Geometry)由 id、parts、points、style 和 type参数表示,其中:<br />id 是几何对象的唯一标识符;<br />parts 是整型数组,其元素描述几何对象中各个子对象所包含的节点的个数;<br />1.几何对象从结构上分为简单几何对象和复杂几何对象。简单几何对象一般为单一对象,复杂几何对象由多个简单对象组成或经过一定的空间运算之后产生,如:矩形为简单的区域对象,而中空的矩形为复杂的区域对象。<br />2.通常情况下,一个简单几何对象的子对象就是它本身,因此对于简单对象来说,parts 是长度为1的整型数组,数组中元素的值就是这个简单对象节点的个数。如果一个几何对象是由几个简单对象组合而成的,例如,一个岛状几何对象由3个简单多边形组合而成,那么这个岛状的几何对象的 parts 参数值就是一个长度为3的整型数组,数组中每个元素的值分别代表这三个多边形所包含的节点个数。<br />points 描述组成几何对象的节点的二维坐标对数组。<br />style 描述几何对象的风格,用于定义几何对象在显示时的符号、线型、填充模式等信息。<br />type 描述几何对象的类型。<br />简单点对象<br />对于简单点对象来说,parts 参数是长度为1的整型数组,数组中元素的值就是点对象中所包含的节点的个数,即1;type 值就是“POINT”。<br />{<br /> quot;
idquot;
: 1,<br /> quot;
stylequot;
: null,<br /> quot;
typequot;
: quot;
POINTquot;
,<br /> quot;
partsquot;
: [1],<br /> quot;
pointsquot;
: [{quot;
xquot;
: 25.27,quot;
yquot;
: 54.68}]<br />}<br />简单线对象<br />线对象由一些简单的点坐标组成,线对象的 type 值是“LINE”。<br />{<br /> quot;
idquot;
: 1,<br /> quot;
stylequot;
: null,<br /> quot;
typequot;
: quot;
LINEquot;
,<br /> quot;
partsquot;
: [2],<br /> quot;
pointsquot;
: [{<br /> quot;
xquot;
: 96.37, quot;
yquot;
: 399.73<br /> }, {<br /> quot;
xquot;
: 127.61, quot;
yquot;
: 290.41<br /> }]<br />}<br />简单面对象<br />面对象由一些简单的点坐标组成,对于简单的面对象来说,它的起点和终点的坐标点相同。<br />{<br /> quot;
idquot;
: 1,<br /> quot;
stylequot;
: null,<br /> quot;
typequot;
: quot;
REGIONquot;
,<br /> quot;
partsquot;
: [3],<br /> quot;
pointsquot;
: [{<br /> quot;
xquot;
: -12.91, quot;
yquot;
: 407.37<br /> }, {<br /> quot;
xquot;
: -2.91, quot;
yquot;
: 248.49<br /> }, {<br /> quot;
xquot;
: 250.22, quot;
yquot;
: 305.78<br /> }, {<br /> quot;
xquot;
: -12.91, quot;
yquot;
: 407.37<br /> }]<br />}<br />SuperMap iServer地理要素的JSON格式<br />一个要素的信息,包括属性字段名称列表、属性字段值列表,以及要素对应的几何对象。<br />{<br /> quot;
IDquot;
: 1,<br /> quot;
fieldNamesquot;
: [quot;
字段名1quot;
, quot;
字段名2quot;
],<br /> quot;
fieldValuesquot;
: [quot;
字段值1quot;
, quot;
字段值2quot;
],<br /> quot;
geometryquot;
: <Geometry><br />}<br />