<portal_uri>/scenes[.<format>]
scenes 资源是当前用户有权限查看的场景列表信息,通过发送 DETELE 请求,可以批量删除场景。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。
http://supermapiportal:8190/iportal/web/scenes.rjson
获取当前用户有权限查看的场景列表信息。
如果参数未设置,则返回当前用户有权限查看的当前第一页中的场景列表信息,设置参数后,会返回用户指定的场景列表信息,请求参数必须包含在 URI 中。
字段 | 类型 | 说明 |
tags | String[] | 根据场景的标签过滤。 |
userNames | String[] | 根据场景添加者名称过滤。 |
orderBy | SceneOrderBy | 根据排序字段过滤。 |
orderType | OrderType | 根据升序还是降序过滤。 |
keywords | String[] | 根据关键字过滤。 |
currentPage | int | 根据分页页码过滤。 |
pageSize | int | 根据分页大小过滤。 |
dirIds | Integer[] | 根据目录 id 过滤。 |
isNotInDir | Boolean | 根据是否是未分组的进行过滤,默认值为 false。如果为 true,则返回所有未分组的场景列表信息;如果为 false,则返回全部的场景列表信息。 未分组是指未添加到目录中的场景列表资源。 |
filterFields | FilterFields[] | 用于关键字查询时的字段过滤。字段名称需大写。例如:根据场景名称的关键字符过滤,则需要设置 keywords=["osgb"]&filterFields=["NAME"]。 |
createStart | Long | 查询此时间值及此时间值之后创建的场景,如果为null或者小于0,则起始时间不限制。 |
createEnd | Long | 查询此时间值及此时间值之前创建的场景,如果为null或者小于0,则截止时间不限制。 |
对 scenes 资源执行 GET 请求,返回当前用户有权查看的场景列表信息。由以下字段组成:
字段 | 类型 | 说明 |
content | List<SceneInfo> | 页面内容。 |
currentPage | int | 当前第几页。 |
pageSize | int | 每页大小。 |
searchParameter | SearchParameter | 当前页搜索参数。 |
total | int | 总记录数。 |
totalPage | int | 总页数。 |
对 scenes 资源:http://localhost:8190/iportal/web/scenes.rjson 执行 GET 请求,返回 rjson 格式的资源表述如下:
{
"content": [
{
"authorizeSetting": null,
"createTime": 1461672464399,
"description": null,
"id": 11,
"name": "Theme3d",
"nickname": "admin",
"tags": [
"系统场景"
],
"thumbnail": null,
"updateTime": 1461672464399,
"url": "http://192.168.120.40:8090/iserver/services/3D-sample/rest/realspace/scenes/Theme3d",
"userName": "admin",
"visitCount": 0
},
{
"authorizeSetting": null,
"createTime": 1461672562050,
"description": null,
"id": 12,
"name": "ChinaProvinces",
"nickname": "admin",
"tags": [
"系统场景"
],
"thumbnail": null,
"updateTime": 1461672562050,
"url": "http://192.168.120.40:8090/iserver/services/3D-ChinaProvinces/rest/realspace/scenes/ChinaProvinces",
"userName": "admin",
"visitCount": 0
}
],
"currentPage": 1,
"pageSize": 9,
"searchParameter": {
"currentPage": 1,
"currentUser": null,
"dirIds": null,
"filterFields": null,
"groupIds": [],
"isNotInDir": false,
"keywords": null,
"orderBy": null,
"orderType": "ASC",
"pageSize": 9,
"resourceIds": null,
"tags": null,
"userNames": null
},
"total": 2,
"totalPage": 1
}
如果希望获取指定的场景列表信息,如根据场景名称的关键字符过滤,则需要设置 keywords=["osgb"]&filterFields=["NAME"],即对 scenes 资源:http://localhost:8190/iportal/web/scenes.rjson?keywords=["osgb"]&filterFields=["NAME"]执行 GET 请求,返回的 rjson 格式的资源表述如下:
{
"content": [
{
"authorizeSetting": null,
"createTime": 1461719177139,
"description": null,
"id": 13,
"name": "osgb",
"nickname": "admin",
"tags": [
"系统场景"
],
"thumbnail": null,
"updateTime": 1461719177139,
"url": "http://192.168.120.40:8090/iserver/services/3D-osgb/rest/realspace/scenes/osgb",
"userName": "admin",
"visitCount": 0
}
],
"currentPage": 1,
"pageSize": 9,
"searchParameter": {
"currentPage": 1,
"currentUser": null,
"dirIds": null,
"filterFields": [
"NAME"
],
"groupIds": [],
"isNotInDir": null,
"keywords": [
"osgb"
],
"orderBy": null,
"orderType": "ASC",
"pageSize": 9,
"resourceIds": null,
"tags": null,
"userNames": null
},
"total": 1,
"totalPage": 1
}
添加新的场景。
发送请求时,需要在请求体中传递如下参数:
名称 | 类型 | 含义 |
name |
String | 场景的名称。 |
tags | List<String> | 场景的标签。 |
userName | String | 场景添加者的用户名。 |
description | String | 场景描述信息。 |
content |
SceneInfo |
三维场景具体信息,包括三维图层列表、场景相机、场景环境等。 |
返回的资源表述结构如下:
字段 | 类型 | 说明 |
succeed | boolean | 添加场景是否成功。 |
newResourceID | String | 新添加场景的 ID。 |
newResourceLocation | String | 新添加场景的 URL。 |
对 scenes 资源:http://localhost:8190/iportal/web/scenes.rjson 执行 POST 请求,在门户中新添加一个三维场景,发送请求体如下:
{
"name": "test",
"tags": "t",
"userName": "user",
"description": "",
"content": "{layers:{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Ground_zhud@Olympic/config,name:Ground_zhud@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Nest@Olympic/config,name:Nest@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Tree@Olympic/config,name:Tree@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Ground@Olympic/config,name:Ground@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Ground_other@Olympic/config,name:Ground_other@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Ground_deng@Olympic/config,name:Ground_deng@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/NewDataset@water-caijian/config,name:NewDataset@water-caijian,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},{url:http://rdc.ispeco.com:8080/iserver/services/3D-Olympic/rest/realspace/datas/Building@Olympic/config,name:Building@Olympic,type:S3M,realName:,id:null,isVisible:true,thumbnail:null,title:null},camera:{position:{x:-2171393.232177115,y:4378420.651896914,z:4099458.299207809},heading:6.283161083227248,pitch:-0.7855183118939602,roll:6.283185307179586},environmentState:{enableLighting:true,skyAtmosphereShow:true,enableFog:true},isSTKTerrain:false,analysisObjects:{},terrainObjects:{}}"
}
返回的 rjson 格式响应结果如下:
{
"newResourceID": "1116904540",
"succeed": true,
"newResourceLocation": "http://localhost:8190/iportal/web/scenes/1116904540"
}
删除场景,支持批量删除场景。url 中传递需要删除场景的 id 数组。
返回的资源表述结构如下:
字段 | 类型 | 说明 |
succeed | boolean | 删除场景是否成功。 |
error | Httperror | 出错信息,如果删除场景成功,则没有本字段。 |
对 scenes 资源:http://localhost:8190/iportal/web/scenes.rjson?ids=[1,2] 执行 DELETE 请求,批量删除 id 为 1 和 2 的两个场景,返回的 rjson 格式响应结果如下:
{ "succeed": true}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 scenes 资源是否存在,或者客户端是否有权限访问 scenes 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 scenes 资源是否支持<format>格式的表述。