Class: SceneServer

SceneServer

new SceneServer(options)

service/igs/SceneServer.js, line 6

场景服务

Name Type Description
options Object

构造参数

Name Type Default Description
url String null 可选

服务基地址
IGS1.0: http://{ip}:{port}/igs/rest/g3d/{folder}:{serviceName}
IGS2.0: http://{ip}:{port}/igs/rest/services/{folder}/{serviceName}/SceneServer

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

clientIdBoolean

客户端id

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 208

获取指定覆盖物图层的url

Name Type Description
options

查询参数

Name Type Default Description
layerIndex String | Number 0 可选

图层下标,IGS2.0参数

bbox Extent '{bbox}' 可选

出图范围,IGS2.0参数

size String '256,256' 可选

图片宽高,IGS2.0参数

format String 'png' 可选

图片格式,支持png/jpg/gif,IGS2.0参数

isAntialiasing Boolean null 可选

返回的图片是否抗锯齿,IGS2.0参数

transparent Boolean true 可选

返回图片背景是否透明,IGS2.0参数

f String 'image' 可选

请求返回格式,html或image,IGS2.0参数

x String '{x}' 可选

列号,IGS1.0参数

y String '{y}' 可选

行号,IGS1.0参数

z String '{z}' 可选

级数号,IGS1.0参数

sceneIndex String | Number 0 可选

场景下标,IGS1.0参数

layerRenderIndex String | 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 734

根据IGS版本获取注记出图模板地址,额外出图请求参数会覆盖出图请求参数,并对出图参数去重

Name Type Description
options Object

出图请求参数

Name Type Default Description
layerIndex String | Number 0 可选

图层下标

format String 'json' 可选

返回格式

spatialReference SpatialReference 'EPSG:4326' 可选

坐标系

sceneIndex String | 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 776

获取地形缓存出图地址

Name Type Description
options Object

出图请求参数

Name Type Default Description
sceneIndex String | Number 0 可选

场景下标,IGS1.0服务参数

layerIndex String | 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 500

获取指定图层的M3d共享资源,IGS2.0服务

Name Type Description
options

查询参数

Name Type Description
layerId String 可选

图层id,必填

success function 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 685

根据IGS版本获取地形出图模板地址,额外出图请求参数会覆盖出图请求参数,并对出图参数去重

Name Type Description
options Object

出图请求参数

Name Type Default Description
layerIndex Number 0 可选

图层下标

x Number '{x}' 可选

列号

y Number '{y}' 可选

行号

level String '{z}' 可选

级数

xDensity Number 65 可选

x密度

yDensity Number 65 可选

y密度

requestVertexNormals Boolean true 可选

是否返回地形法向量

sceneIndex Number 0 可选

场景下标,IGS1.0服务参数

webGL Boolean 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 613

查询G3D服务的文档图层信息

Name Type Description
options
Name Type Description
success function 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 643

获取所有发布的G3D文档列表

Name Type Description
options
Name Type Description
ip String 可选

服务器的ip地址,必填

port String 可选

服务器的端口号,必填

success function 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 517

指定图层的要素查询 [指定图层查询使用示例]

Name Type Description
options QueryFeauresOptions

指定图层要素查询参数

Returns:
Type Description
Promise.<QueryFeaturesResult> 指定图层要素查询结果

queryFeaturesInLayers(options){Promise.<QueryFeaturesResult>}

service/igs/SceneServer.js, line 527

多图层要素查询 [多图层查询使用示例]

Name Type Description
options QueryFeaturesInLayersOptions

多图层要素查询参数

Returns:
Type Description
Promise.<QueryFeaturesResult> 多图层要素查询结果

queryFeaturesInM3DCache(options){Promise.<Object>}

service/igs/SceneServer.js, line 560

多图层的要素查询(仅M3D2.1以上版本,且DataAttribute.db数据存在,数据内容不为空)

Name Type Description
options

要素查询参数

Name Type Default Description
success queryFeaturesInLayersSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用Promise方式则不必填写

method String FetchMethod.get 可选

请求类型

layerId String 可选

M3D图层在场景服务中的id,必填

layerDefs Array 可选

多图层的属性条件,包括layerId、where、outFields;此处的layerId需要通过m3d缓存目录下的layerinfo文件中获取。当值为空时,查询所有图层,并当为拉框查询时,自动过滤不需要不需要查询的图层,示例:"[{ "layerId":"0-0","where": "name='中国'", "outfields": "field1,field2"}]"

resultRecordCount Number 20 可选

分页参数:结果返回条数,默认20

resultOffset Number 可选

分页参数:跳过条数

condition String 可选

过滤条件

f String 'json' 可选

查询返回的数据格式。支持"html" "json"返回格式

Returns:
Type Description
Promise.<Object> 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((res) => { console.log("res: ", res); }); });

queryLayerInfo(options)

service/igs/SceneServer.js, line 181

获取图层信息,IGS2.0服务

Name Type Description
options

查询参数

Name Type Description
layerId String 可选

图层id,必填

success queryLayerInfoSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 107

获取图层列表信息,IGS2.0服务

Name Type Description
options

查询参数

Name Type Description
success queryLayerListInfoSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 299

获取指定图层的M3d数据信息,IGS2.0服务

Name Type Description
options

查询参数

Name Type Description
layerId String 可选

图层id,必填

success queryM3DInfoSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用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 438

获取指定M3d图层的节点信息,IGS2.0服务

Name Type Description
options

查询参数

Name Type Default Description
layerId String 可选

图层id,必填

nodeId String 可选

节点id,必填

success queryNodeInfoSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用Promise方式则不必填写

include String 可选

返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代

maxDepth Number 1 可选

节点最大深度

maxCount Number 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 351

获取指定M3d图层的根节点信息,IGS2.0服务

Name Type Description
options

查询参数

Name Type Default Description
layerId String 可选

图层id,必填

success queryRootNodeInfoSuccess 可选

查询成功回调函数,若使用Promise方式则不必填写

failure queryFailure 可选

查询失败回调函数,若使用Promise方式则不必填写

include String 可选

返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代

maxDepth Number 1 可选

节点最大深度

maxCount Number 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)

service/BaseServer.js, line 151

获取服务信息,IGS2.0新增服务

Name Type Description
options

查询参数

Name Type Default Description
success function 可选

查询成功回调函数,若使用Promise方式则不必填写

failure function 可选

查询失败回调函数,若使用Promise方式则不必填写

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);
});