#### # new SceneServer(options)

场景服务

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object | 构造参数
`url` | String | 服务基地址

查看源代码 common/service/igs/SceneServer.js, line 7

##### 示例

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

### 继承关系

- BaseServer

### 成员变量

类型: Boolean

#### # clientId

客户端id

Inherited From:
  - BaseServer#clientId

查看源代码 common/service/BaseServer.js, line 70

类型: Boolean

#### # enableGlobeFetch

是否使用确据唯一的fetch对象，默认为true，当设为false时，会使用自己私有的fetch对象，所有的请求设置不会影响全局

Inherited From:
  - BaseServer#enableGlobeFetch

查看源代码 common/service/BaseServer.js, line 48

##### 示例

    //设置请求基地址
    // 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;

类型: String

#### # headers

请求头参数

Inherited From:
  - BaseServer#headers

查看源代码 common/service/BaseServer.js, line 688

##### 示例

    //设置请求头参数
    // 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';

类型: function

#### # requestInterceptor

请求发送拦截器

Inherited From:
  - BaseServer#requestInterceptor

查看源代码 common/service/BaseServer.js, line 582

##### 示例

    //设置拦截器，任何一个继承自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() {};

类型: String

#### # requestTimeout

请求超时时间，默认45000ms，即45s

Inherited From:
  - BaseServer#requestTimeout

查看源代码 common/service/BaseServer.js, line 660

##### 示例

    //设置超时时间
    //初始化AddressServer服务对象
    // ES5引入方式
    const { BaseServer } = Zondy.Service
    // ES6引入方式
    import { BaseServer } from "@mapgis/webclient-common"
    let BaseServer = new BaseServer({
      //超时时间
      requestTimeout: 2000
    });
    //动态修改
    BaseServer.requestTimeout = 3000;

类型: function

#### # responseInterceptor

请求响应拦截器

Inherited From:
  - BaseServer#responseInterceptor

查看源代码 common/service/BaseServer.js, line 620

##### 示例

    //设置拦截器，任何一个继承自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() {};

类型: TokenAttachType

#### # tokenAttachType

指定token附加到何处

Inherited From:
  - BaseServer#tokenAttachType

查看源代码 common/service/BaseServer.js, line 774

##### 示例

    //设置token值
    // ES5引入方式
    const { BaseServer } = Zondy.Service
    const { TokenAttachType } = Zondy.Enum
    // ES6引入方式
    import { BaseServer,TokenAttachType } from "@mapgis/webclient-common"
    let BaseServer = new BaseServer({
      //token名
      tokenValue: '你的token值',
      //token值
      tokenValue: '你的token值',
      //指定token附加到url后面
      tokenAttachType: TokenAttachType.url
    });
    //动态修改
    BaseServer.tokenAttachType = TokenAttachType.header;

类型: String

#### # tokenKey

token名

Inherited From:
  - BaseServer#tokenKey

查看源代码 common/service/BaseServer.js, line 720

##### 示例

    //设置token名
    // ES5引入方式
    const { BaseServer } = Zondy.Service
    // ES6引入方式
    import { BaseServer } from "@mapgis/webclient-common"
    let BaseServer = new BaseServer({
      //token名
      tokenKey: '你的tokenKey'
    });
    //动态修改
    BaseServer.tokenKey = '新tokenKey';

类型: String

#### # tokenValue

token值

Inherited From:
  - BaseServer#tokenValue

查看源代码 common/service/BaseServer.js, line 747

##### 示例

    //设置token值
    // ES5引入方式
    const { BaseServer } = Zondy.Service
    // ES6引入方式
    import { BaseServer } from "@mapgis/webclient-common"
    let BaseServer = new BaseServer({
      //token值
      tokenValue: '你的token值'
    });
    //动态修改
    BaseServer.tokenValue = '新token值';

类型: String

#### # url

服务基地址

Inherited From:
  - BaseServer#url

查看源代码 common/service/BaseServer.js, line 26

##### 示例

    //设置请求基地址
    // ES5引入方式
    const { BaseServer } = Zondy.Service
    // ES6引入方式
    import { BaseServer } from "@mapgis/webclient-common"
    let BaseServer = new BaseServer({
      //请求基地址
      url: '你的URL'
    });
    //动态修改
    BaseServer.url = '新URL';

### 方法

#### # getCoverings(options)

获取指定覆盖物图层的数据，IGS2.0服务

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 查询参数
`layerId` | String |  | 图层id，必填
`success` | function |  | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure |  | 查询失败回调函数，若使用Promise方式则不必填写
`bbox` | Extent |  | 出图范围
`size` | String | '512,512' | 图片大小，格式：width,height，默认512,512
`transparent` | Boolean | true | 返回的图片是否透明，支持true/false, 默认true
`format` | ReturnFormat | ReturnFormat.png | 返回图片格式，支持png/jpg/gif，默认png
`isAntialiasing` | Boolean | false | 返回的图片是否抗锯齿，支持true/false, 默认false

查看源代码 common/service/igs/SceneServer.js, line 226

##### 示例

    //回调方式
    // ES5引入方式
    const { Extent } = Zondy.Geometry
    // ES6引入方式
    import { Extent } from "@mapgis/webclient-common"
    sceneServer.getCoverings({
      layerId: '0',
      bbox: new Extent({
        "xmin":-180,
        "ymin":-90,
        "xmax":180,
        "ymax":90,
      }),
      size: "512,512",
      format: "png",
      transparent: true,
      isAntialiasing: true,
      success: function (result) {
        console.log('请求成功：', result);
      }
    });
    //promise方式
    sceneServer.getCoverings({
      layerId: '0'
    }).then(function (result) {
      console.log('请求成功：', result);
    }).catch(function (result) {
      console.log('请求失败：', result);
    });

#### # getSharedResources(options)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  | 查询参数
`layerId` | String | 图层id，必填
`success` | function | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 518

##### 示例

    // 回调方式
    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);
      });

#### # queryDocInfo(options)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  |
`success` | function | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 861

返回值:

Promise对象

类型: Promise.<Object>

##### 示例

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

    sceneServer.queryDocInfo()
      .then((result) => {
        console.log('查询成功：', result)
      })
      .catch((result) => {
        console.log('查询失败：', result)
      })

#### # queryDocListInfo(options)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  |
`ip` | String | 服务器的ip地址，必填
`port` | String | 服务器的端口号，必填
`success` | function | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 891

返回值:

Promise对象

类型: Promise.<Object>

##### 示例

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

    sceneServer.queryDocListInfo({
      // 服务器的ip地址
      ip: 'localhost',
      // 服务器的端口号
      port: '6163'
    })
    .then((result) => {
      console.log('查询成功：', result)
    })
    .catch((result) => {
      console.log('查询失败：', result)
    })

#### # queryFeatures(options)

指定图层的要素查询，IGS2.0服务

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 要素查询参数
`layerId` | String |  | 图层id，必填
`method` | FetchMethod | FetchMethod.get | 请求类型，FetchMethod.get或FetchMethod.post
`success` | queryFeaturesSuccess |  | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure |  | 查询失败回调函数，若使用Promise方式则不必填写
`geometry` | Geometry |  | 要素查询几何条件
`where` | String |  | 要素查询where条件
`outFields` | String |  | 输出属性字段，可为*表示所有，多个用英文逗号分隔
`objectIds` | String |  | 过滤id，多个用英文逗号分隔(参数优先级很高，可能导致其它筛选条件失效)
`distance` | Number | 0 | 几何缓冲的距离，geometry为point、line时有效（若数据源为大数据PG数据，且geometryType为line或者point时为必填数据）
`geometryPrecision` | Number |  | 返回要素几何信息中坐标xy的精度
`spatialRel` | SpatialRelation |  | 几何条件的空间判定规则，Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离)
`orderByFields` | String |  | 排序字段,格式: fieldName [ASC|DESC]
`groupByFieldsForStatistics` | String |  | 分组统计的字段信息,格式为field1,field2
`resultRecordCount` | Number | 20 | 分页参数：结果返回条数，默认20
`resultOffset` | Number |  | 分页参数：跳过条数
`outStatistics` | Array |  | 计算一个或多个基于字段的统计信息结构,统计类型包括:FUNCTION_MAX/FUNCTION_MIN/FUNCTION_SUM/FUNCTION_AVG/FUNCTION_COUNT/FUNCTION_MAX_OID，示例："[{"statisticType": "FUNCTION_SUM","onStatisticField": "field1","outStatisticFieldName":"fieldName1"}]"
`returnGeometry` | Boolean | true | 是否返回几何，默认为true
`returnAttribute` | Boolean | true | 是否返回属性，默认为true
`returnStyle` | Boolean | false | 是否返回图形参数信息，默认为false
`returnIdsOnly` | Boolean | false | 是否只返回id，默认为false
`returnCountOnly` | Boolean | false | 是否只返回条数，默认为false
`returnExtentOnly` | Boolean | false | 是否只返回范围，默认为false
`returnZ` | Boolean | false | 是否返回Z轴，默认为false

查看源代码 common/service/igs/SceneServer.js, line 583

##### 示例

    // 回调方式
    // ES5引入方式
    const { Point } = Zondy.Geometry
    // ES6引入方式
    import { Point } from "@mapgis/webclient-common"
    sceneServer.queryFeatures({
      layerId: "0-0",
      success: function (result) {
        console.log('请求成功：', result);
      },
      failure: function (result) {
        console.log('请求失败：', result);
      }
    });
    // promise方式
    sceneServer.queryFeatures({
      layerId: "0-0",
      geometry: new Point({
        coordinates: [108.9590, 34.2193]
      }),
      distance: 0.004
    }).then(function (result) {
      console.log('请求成功：', result);
    }).catch(function (result) {
      console.log('请求失败：', result);
    });

#### # queryFeaturesInLayers(options)

多图层的要素查询，IGS2.0服务

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 要素查询参数
`success` | queryFeaturesInLayersSuccess |  | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure |  | 查询失败回调函数，若使用Promise方式则不必填写
`layerDefs` | Array |  | 多图层的属性条件,包括layerId、where、outFields；当值为空时，查询所有图层，并当为拉框查询时，自动过滤不需要不需要查询的图层，示例："[{ "layerId":"0-0","where": "name='中国'", "outfields": "field1,field2"}]"
`geometry` | Geometry |  | 要素查询几何条件
`distance` | Number | 0 | 几何缓冲的距离，geometry为point、line时有效（若数据源为大数据PG数据，且geometryType为line或者point时为必填数据）
`geometryPrecision` | Number |  | 返回要素几何信息中坐标xy的精度
`spatialRel` | SpatialRelation |  | 几何条件的空间判定规则，Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离)
`resultRecordCount` | Number | 20 | 分页参数：结果返回条数，默认20
`returnGeometry` | Boolean | true | 是否返回几何，默认为true
`returnAttribute` | Boolean | true | 是否返回属性，默认为true
`returnStyle` | Boolean | false | 是否返回图形参数信息，默认为false
`returnIdsOnly` | Boolean | false | 是否只返回id，默认为false
`returnCountOnly` | Boolean | false | 是否只返回条数，默认为false
`returnZ` | Boolean | false | 是否返回Z轴，默认为false

查看源代码 common/service/igs/SceneServer.js, line 711

##### 示例

    // 回调函数
    // ES5引入方式
    const { Point } = Zondy.Geometry
    // ES6引入方式
    import { Point } from "@mapgis/webclient-common"
    sceneServer.queryFeaturesInLayers({
      layerDefs: [{
        layerId: "0-0",
        where: "mpName='餐厅'"
      }],
      success: function (result) {
        console.log('请求成功：', result);
      },
      failure: function (result) {
        console.log('请求失败：', result);
      }
    });
    // promise方式
    sceneServer.queryFeaturesInLayers({
      geometry: new Point({
        coordinates: [108.9590, 34.2193]
      }),
      distance: 0.0004
    }).then(function (result) {
      console.log('请求成功：', result);
    }).catch(function (result) {
      console.log('请求失败：', result);
    });

#### # queryLayerInfo(options)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  | 查询参数
`layerId` | String | 图层id，必填
`success` | queryLayerInfoSuccess | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 176

##### 示例

    //回调方式
    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)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  | 查询参数
`success` | queryLayerListInfoSuccess | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 102

##### 示例

##### 获取图层列表信息-回调方式

    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)

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

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` |  | 查询参数
`layerId` | String | 图层id，必填
`success` | queryM3DInfoSuccess | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure | 查询失败回调函数，若使用Promise方式则不必填写

查看源代码 common/service/igs/SceneServer.js, line 317

##### 示例

    // 回调方式
    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)

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

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 查询参数
`layerId` | String |  | 图层id，必填
`nodeId` | String |  | 节点id，必填
`success` | queryNodeInfoSuccess |  | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure |  | 查询失败回调函数，若使用Promise方式则不必填写
`include` | String |  | 返回节点信息包括的类型，默认为空，等于descendants时返回节点信息包括节点的子孙后代
`maxDepth` | Number | 1 | 节点最大深度
`maxCount` | Number | 1000 | 节点最大个数

查看源代码 common/service/igs/SceneServer.js, line 456

##### 示例

    // 回调方式
    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)

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

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 查询参数
`layerId` | String |  | 图层id，必填
`success` | queryRootNodeInfoSuccess |  | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | queryFailure |  | 查询失败回调函数，若使用Promise方式则不必填写
`include` | String |  | 返回节点信息包括的类型，默认为空，等于descendants时返回节点信息包括节点的子孙后代
`maxDepth` | Number | 1 | 节点最大深度
`maxCount` | Number | 1000 | 节点最大个数

查看源代码 common/service/igs/SceneServer.js, line 369

##### 示例

    // 回调方式
    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);
     });

#### # queryServerInfo(options)

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

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`options` |  |  | 查询参数
`success` | function | 无 | 查询成功回调函数，若使用Promise方式则不必填写
`failure` | function | 无 | 查询失败回调函数，若使用Promise方式则不必填写

Inherited From:
  - BaseServer#queryServerInfo

查看源代码 common/service/BaseServer.js, line 157

##### 示例

##### 获取服务信息-回调方式

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