new SceneServer(options)
场景服务,统一封装 IGS1.0/IGS2.0 场景接口,支持图层信息查询、覆盖物模板获取与三维场景资源访问
| Name | Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
构造参数
|
Examples
IGS2.0的SceneServer
// ES5引入方式
const { SceneServer } = zondy.service
// ES6引入方式
import { SceneServer } from "@mapgis/webclient-common"
const sceneServer = new SceneServer({
// 服务基地址,folder为igs服务的文件夹名,没有可不填,serviceName为服务名
url: 'http://{ip}:{port}/igs/rest/services/{folder}/{serviceName}/SceneServer'
});
G3DServer
// ES5引入方式
const { SceneServer } = zondy.service
// ES6引入方式
import { SceneServer } from "@mapgis/webclient-common"
const sceneServer = new SceneServer({
// 服务基地址,serviceName为服务名,端口号为6163则是.net服务,端口号为8089则是java服务
url: 'http://{ip}:{port}/igs/rest/g3d/{serviceName}'
});
设置拦截器
// ES5引入方式
const { SceneServer } = zondy.service
// ES6引入方式
import { SceneServer } from "@mapgis/webclient-common"
const sceneServer = new SceneServer({
// 服务基地址,folder为igs服务的文件夹名,没有可不填,serviceName为服务名
url: 'http://localhost:8089/igs/rest/services/{folder}/{serviceName}/SceneServer'
// 请求发送前的拦截器
requestInterceptor: {
before: function (config) {
return config;
},
failure: function (error) {
console.log("请求发送失败(拦截器):", error)
}
},
// 请求完成后的拦截器
responseInterceptor: {
success: function (result) {
console.log("请求成功拦截响应")
return result;
},
failure: function (result) {
console.log("请求失败拦截响应")
return result;
}
}
});
Extends
Members
-
clientIdString undefined
-
客户端标识
-
enableGlobeFetchBoolean
-
是否使用确据唯一的fetch对象,默认为true,当设为false时,会使用自己私有的fetch对象,所有的请求设置不会影响全局
Example
//设置请求基地址 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //请求基地址 url: '你的URL', //使用私有的fetch对象 enableGlobeFetch: false, //此时设置token等属性,不会影响全局的fetch对象 tokenValue: '你的token' }); //继续使用全局fetch BaseServer.enableGlobeFetch = true; -
headersString
-
请求头参数
Example
//设置请求头参数 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //请求头 headers: { //设置Content-Type为multipart/form-data 'Content-Type': 'multipart/form-data', //设置token 'token': '你的token' } }); //动态修改 BaseServer.headers.token = '新token'; -
requestInterceptorfunction
-
请求发送拦截器
Example
//设置拦截器,任何一个继承自BaseServer的对象都可以设置,全局唯一 // ES5引入方式 const { BaseServer,RequestInterceptor } = zondy.service // ES6引入方式 import { BaseServer,RequestInterceptor } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //设置请求发送拦截器 requestInterceptor: new RequestInterceptor({ //请求发送前进行统一处理 before: function(config) { //执行你的业务逻辑 //注意必须显示返回config对象,如果返回为空,则不发送请求 return config; }, //请求发送失败时进行统一处理 failure: function(error) { //执行你的业务逻辑 } }) }); //动态修改 BaseServer.requestInterceptor.before = function() {}; -
requestTimeoutString
-
请求超时时间,默认45000ms,即45s
Example
//设置超时时间 //初始化AddressServer服务对象 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //超时时间 requestTimeout: 2000 }); //动态修改 BaseServer.requestTimeout = 3000; -
responseInterceptorfunction
-
请求响应拦截器
Example
//设置拦截器,任何一个继承自BaseServer的对象都可以设置,全局唯一 // ES5引入方式 const { BaseServer,ResponseInterceptor } = zondy.service // ES6引入方式 import { BaseServer,ResponseInterceptor } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //设置请求响应拦截器 responseInterceptor: new ResponseInterceptor({ //执行请求响应,接口调用成功时会执行的回调 success: function(result) { //执行你的业务逻辑 //注意必须显示返回result对象,如果返回为空,则不执行请求响应成功回调 return result; }, //请求响应成功,接口调用失败时会执行的函数 failure: function(result) { //执行你的业务逻辑 //注意必须显示返回result对象,如果返回为空,则不执行回调韩式 return result; } }) }); //动态修改 BaseServer.responseInterceptor.success = function() {}; -
tokenAttachTypeTokenAttachType
-
指定token附加到何处
Example
//设置token值 // ES5引入方式 const { BaseServer } = zondy.service const { TokenAttachType } = zondy.enum // ES6引入方式 import { BaseServer,TokenAttachType } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //token名 tokenKey: '你的token key', //token值 tokenValue: '你的token值', //指定token附加到url后面 tokenAttachType: TokenAttachType.url }); //动态修改 BaseServer.tokenAttachType = TokenAttachType.header; -
tokenKeyString
-
token名
Example
//设置token名 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //token名 tokenKey: '你的tokenKey' }); //动态修改 BaseServer.tokenKey = '新tokenKey'; -
tokenValueString
-
token值
Example
//设置token值 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //token值 tokenValue: '你的token值' }); //动态修改 BaseServer.tokenValue = '新token值'; -
urlString
-
服务基地址
Example
//设置请求基地址 // ES5引入方式 const { BaseServer } = zondy.service // ES6引入方式 import { BaseServer } from "@mapgis/webclient-common" let BaseServer = new BaseServer({ //请求基地址 url: '你的URL' }); //动态修改 BaseServer.url = '新URL';
Methods
-
getCoverings(options){String}
service/igs/SceneServer.js, line 211 -
生成指定覆盖物图层的出图地址模板;会根据
igsType自动拼装 IGS1.0/IGS2.0 请求参数Name Type Description optionsObject 查询参数对象
Name Type Default Description layerIndexString | Number 0 可选 图层下标,IGS2.0参数
bboxExtent '{bbox}' 可选 出图范围,IGS2.0参数
sizeString '256,256' 可选 图片宽高,IGS2.0参数
formatString 'png' 可选 图片格式,支持png/jpg/gif,IGS2.0参数
isAntialiasingBoolean null 可选 返回的图片是否抗锯齿,IGS2.0参数
transparentBoolean true 可选 返回图片背景是否透明,IGS2.0参数
fString 'image' 可选 请求返回格式,html或image,IGS2.0参数
xString '{x}' 可选 列号,IGS1.0参数
yString '{y}' 可选 行号,IGS1.0参数
zString '{z}' 可选 级数号,IGS1.0参数
sceneIndexString | Number 0 可选 场景下标,IGS1.0参数
layerRenderIndexString | Number 0 可选 场景下标,IGS1.0参数
Returns:
Type Description String 图片的url IGS1.0: http://{ip}:{port}/igs/rest/g3d/{fold}:{serviceName}/GetCovering?sceneIndex={sceneIndex}&layerIndex={layerRenderIndex}&col={x}&row={y}&level={z} IGS2.0: http://{ip}:{port}/igs/rest/services/{fold}:{serviceName}/SceneServer/layers/{layerIndex}/coverings?bbox={bbox}&size=256,256&format=png&f=image -
getLabel(options){String}
service/igs/SceneServer.js, line 737 -
根据 IGS 版本生成注记出图地址模板;额外请求参数会覆盖默认参数并参与去重
Name Type Description optionsObject 出图请求参数
Name Type Default Description layerIndexString | Number 0 可选 图层下标
formatString 'json' 可选 返回格式
spatialReferenceSpatialReference 'EPSG:4326' 可选 坐标系
sceneIndexString | Number 0 可选 场景下标,IGS1.0服务参数
Returns:
Type Description String 拼接好的出图地址, IGS1.0出图地址: http://{ip}:{port}/igs/rest/g3d/{文档名称}/GetLabels?sceneIndex=${sceneIndex}&layerIndex=${layerRenderIndex}&level=0&row=0&col=0&srsNameEPSG:4326&format=json IGS2.0出图地址: http://{ip}:{port}/igs/rest/services/{服务名称}/SceneServer/layers/${layerId}/labels?level=0&row=0&col=0&srsNameEPSG:4326&format=json -
getModelCache(options){String}
service/igs/SceneServer.js, line 779 -
获取模型缓存访问地址模板(IGS1.0 为 DataStreams,IGS2.0 为 SceneServer 基地址)
Name Type Description optionsObject 出图请求参数
Name Type Default Description sceneIndexString | Number 0 可选 场景下标,IGS1.0服务参数
layerIndexString | Number 0 可选 图层下标,IGS1.0服务参数
Returns:
Type Description String 出图地址 IGS1.0出图地址: http://{ip}:{port}/igs/rest/g3d/{fold}:{serviceName}/GetTerrainCache?sceneIndex=${sceneIndex}&layerIndex=${layerIndex} IGS2.0出图地址: http://{ip}:{port}/igs/rest/services/{fold}:{serviceName}/SceneServer -
getSharedResources(options)
service/igs/SceneServer.js, line 503 -
获取指定图层的 M3D 共享资源(IGS2.0),用于纹理/材质等公共资源复用
Name Type Description optionsObject 查询参数对象
Name Type Description layerIdString 可选 图层id,必填
successfunction 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Example
// 回调方式 sceneServer.getSharedResources({ layerId: '0', success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } }); // promise方式 sceneServer.getSharedResources({ layerId: '0' }).then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }); -
getTerrainTile(options){String}
service/igs/SceneServer.js, line 690 -
根据 IGS 版本生成地形出图地址模板;额外请求参数会覆盖默认参数并参与去重
Name Type Description optionsObject 出图请求参数
Name Type Default Description layerIndexNumber 0 可选 图层下标
xNumber '{x}' 可选 列号
yNumber '{y}' 可选 行号
levelString '{z}' 可选 级数
xDensityNumber 65 可选 x密度
yDensityNumber 65 可选 y密度
requestVertexNormalsBoolean true 可选 是否返回地形法向量
sceneIndexNumber 0 可选 场景下标,IGS1.0服务参数
webGLBoolean true 可选 是否为webGL数据源,IGS1.0服务参数
Returns:
Type Description String 拼接好的出图地址, IGS1.0出图地址: http://{ip}:{port}/igs/rest/g3d/{文档名称}/GetTerrain?sceneIndex=${sceneIndex}&layerIndex=${layerIndex}&level={z}&row={x}&col={y}&webGL=${webGL}&hasNormals=${hasNormals}&xDensity=${xDensity}&yDensity=${yDensity} IGS2.0出图地址: http://{ip}:{port}/igs/rest/services/{服务名称}/SceneServer/layers/${layerId}/terrains?level={z}&row={x}&col={y}&hasNormals=${hasNormals}&xDensity=${xDensity}&yDensity=${yDensity} -
queryDocInfo(options){Promise.<Object>}
service/igs/SceneServer.js, line 618 -
查询 G3D 服务文档图层信息,常用于 IGS1.0 场景文档初始化
Name Type Description optionsObject 查询参数对象
Name Type Description successfunction 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Returns:
Type Description Promise.<Object> Promise对象 Example
查询G3D服务的文档图层信息
sceneServer.queryDocInfo() .then((result) => { console.log('查询成功:', result) }) .catch((result) => { console.log('查询失败:', result) }) -
queryDocListInfo(options){Promise.<Object>}
service/igs/SceneServer.js, line 648 -
获取服务器上已发布的 G3D 文档列表,用于服务发现与文档选择
Name Type Description optionsObject 查询参数对象
Name Type Description ipString 可选 服务器的ip地址,必填
portString 可选 服务器的端口号,必填
successfunction 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Returns:
Type Description Promise.<Object> Promise对象 Example
获取所有发布的G3D文档列表
sceneServer.queryDocListInfo({ // 服务器的ip地址 ip: 'localhost', // 服务器的端口号 port: '6163' }) .then((result) => { console.log('查询成功:', result) }) .catch((result) => { console.log('查询失败:', result) }) -
queryFeatures(options){Promise.<QueryFeaturesResult>}
service/igs/SceneServer.js, line 521 -
指定图层要素查询;适用于单图层条件过滤与属性返回 [指定图层查询使用示例]
Name Type Description optionsQueryFeaturesOptions 指定图层要素查询参数
Returns:
Type Description Promise.<QueryFeaturesResult> 指定图层要素查询结果 -
queryFeaturesInLayers(options){Promise.<QueryFeaturesResult>}
service/igs/SceneServer.js, line 532 -
多图层要素查询;适用于跨图层统一条件检索 [多图层查询使用示例]
Name Type Description optionsQueryFeaturesInLayersOptions 多图层要素查询参数
Returns:
Type Description Promise.<QueryFeaturesResult> 多图层要素查询结果 -
queryFeaturesInM3DCache(options){Promise.<Object>}
service/igs/SceneServer.js, line 565 -
多图层要素查询(仅 M3D 2.1+ 且存在 DataAttribute.db 且有有效数据)
Name Type Description optionsObject 要素查询参数对象
Name Type Default Description successqueryFeaturesInLayersSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
methodString FetchMethod.get 可选 请求类型
layerIdString 可选 M3D图层在场景服务中的id,必填
layerDefsArray 可选 多图层属性条件,包含 layerId、where、outFields;当为空时查询所有图层
resultRecordCountNumber 20 可选 分页参数:结果返回条数,默认20
resultOffsetNumber 可选 分页参数:跳过条数
conditionString 可选 过滤条件
fString 'json' 可选 查询返回的数据格式。支持"html" "json"返回格式
Returns:
Type Description Promise.<Object> Example
// promise方式 const sceneServer = new SceneServer({ url: 'http://10.12.201.4:8089/igs/rest/services/场景地图文档/SceneServer' }) sceneServer .queryFeaturesInM3DCache({ layerId: '1', layerDefs: [{ layerId: '2927027442' }], condition: 'TID == 1', method: 'POST' }) .then(function (res) { console.log('res: ', res) }) -
queryLayerInfo(options)
service/igs/SceneServer.js, line 184 -
获取指定图层详情(IGS2.0),用于读取图层范围、LOD 与可见性等元信息
Name Type Description optionsObject 查询参数对象
Name Type Description layerIdString 可选 图层id,必填
successqueryLayerInfoSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Example
//回调方式 const server = sceneServer.queryLayerInfo({ layerId: "0", success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } }); //promise方式 const server = sceneServer.queryLayerInfo({ layerId: "0" }); server.then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }) -
queryLayerListInfo(options)
service/igs/SceneServer.js, line 110 -
获取场景服务图层列表(IGS2.0),用于初始化图层树或按图层能力做后续请求编排
Name Type Description optionsObject 查询参数对象
Name Type Description successqueryLayerListInfoSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Examples
获取图层列表信息-回调方式
sceneServer.queryLayerListInfo({ success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } });获取图层列表信息-promise方式
const server = sceneServer.queryLayerListInfo(); server.then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }) -
queryM3DInfo(options)
service/igs/SceneServer.js, line 302 -
获取指定图层的 M3D 元数据(IGS2.0),用于模型节点加载前的能力探测
Name Type Description optionsObject 查询参数对象
Name Type Description layerIdString 可选 图层id,必填
successqueryM3DInfoSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
Example
// 回调方式 sceneServer.queryM3DInfo({ layerId: '0', success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } }); // promise方式 sceneServer.queryM3DInfo({ layerId: '0' }).then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }); -
queryNodeInfo(options)
service/igs/SceneServer.js, line 441 -
获取指定 M3D 图层节点详情(IGS2.0),用于按节点分页加载模型数据
Name Type Description optionsObject 查询参数对象
Name Type Default Description layerIdString 可选 图层id,必填
nodeIdString 可选 节点id,必填
successqueryNodeInfoSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
includeString 可选 返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代
maxDepthNumber 1 可选 节点最大深度
maxCountNumber 1000 可选 节点最大个数
Example
// 回调方式 sceneServer.queryNodeInfo({ layerId: '0', nodeId: '1', success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } }); // promise方式 sceneServer.queryNodeInfo({ layerId: '0', nodeId: '1' }).then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }); -
queryRootNodeInfo(options)
service/igs/SceneServer.js, line 354 -
获取指定 M3D 图层根节点信息(IGS2.0),用于构建节点树加载入口
Name Type Description optionsObject 查询参数对象
Name Type Default Description layerIdString 可选 图层id,必填
successqueryRootNodeInfoSuccess 可选 查询成功回调函数,若使用Promise方式则不必填写
failurequeryFailure 可选 查询失败回调函数,若使用Promise方式则不必填写
includeString 可选 返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代
maxDepthNumber 1 可选 节点最大深度
maxCountNumber 1000 可选 节点最大个数
Example
// 回调方式 sceneServer.queryRootNodeInfo({ layerId: '0', success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } }); //promise方式 sceneServer.queryRootNodeInfo({ layerId: '0' }).then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); }); -
inherited queryServerInfo(options){Promise.<Object>}
service/BaseServer.js, line 140 -
获取服务信息,IGS2.0新增服务
Name Type Default Description optionsObject {} 可选 查询参数
Name Type Default Description successfunction 无 可选 查询成功回调函数,若使用Promise方式则不必填写
failurefunction 无 可选 查询失败回调函数,若使用Promise方式则不必填写
Returns:
Type Description Promise.<Object> 服务信息查询结果 Examples
获取服务信息-回调方式
server.queryServerInfo({ success: function (result) { console.log('请求成功:', result); }, failure: function (result) { console.log('请求失败:', result); } });获取服务信息-promise方式
server.queryServerInfo({ }) .then(function (result) { console.log('请求成功:', result); }).catch(function (result) { console.log('请求失败:', result); });