Class: MapServer

MapServer

new MapServer(options)

service/igs/MapServer.js, line 9

地图服务。

MapServer 用于访问 IGS 地图服务能力,支持图层查询、地图文档树查询、临时图层管理、 图片输出与要素查询等能力。实例会根据服务地址自动识别 IGS1.0 或 IGS2.0。

Name Type Default Description
options Object {} 可选

构造参数。

Name Type Default Description
url String null 可选

服务基地址。 IGS1.0: http://{ip}:{port}/igs/rest/mrms/docs/{folder}:{serviceName}。 IGS2.0: http://{ip}:{port}/igs/rest/services/{folder}/{serviceName}/MapServer

clientId String 可选

客户端标识,会透传到请求参数。

Example
// ES5引入方式
const { MapServer } = zondy.service

// ES6引入方式
import { MapServer } from '@mapgis/webclient-common'

const mapServer = new MapServer({
  url: 'http://localhost:8089/igs/rest/services/动态裁图/MapServer'
})

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';

igsTypeString

当前服务版本,依据服务基地址自动判定

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

addLayer(options)

service/igs/MapServer.js, line 227

添加临时文档图层

Name Type Description
options Object

构造参数

Name Type Description
addInfo Array 可选

图层添加信息,必填

success function 可选

请求成功时的回调

failure queryFailure 可选

请求失败时的回调

clientId String 可选

客户端标识

deleteLayer(options)

service/igs/MapServer.js, line 398

删除临时文档图层

Name Type Description
options Object

构造参数

Name Type Description
layerId String 可选

图层id,必传

success function 可选

请求成功时的回调

failure function 可选

请求失败时的回调

clientId String 可选

客户端标识

exportImage(options){Promise.<(Object|Blob)>}

service/igs/MapServer.js, line 764

根据参数出图,详细说明请参考IGS的API文档

Name Type Default Description
options Object {} 可选

参数

Name Type Default Description
bbox Extent null 可选

出图范围

layers String null 可选

要显示的子图层,格式:show|hide|include|exclude:layerid1,layerid2

size String '256,256' 可选

图片宽高

format String 'png' 可选

图片格式,支持png/jpg/gif

dynamicLayers String null 可选

专题图出图参数

isAntialiasing Boolean null 可选

返回的图片是否抗锯齿

layerFilters String null 可选

出图过滤信息

layerStyles String null 可选

样式信息

clipping String null 可选

空间裁剪参数

transparent Boolean true 可选

返回图片背景是否透明

projectionSrs String null 可选

动态投影参数,IGS1.0和2.0动态投影出图通用参数

f String 'image' 可选

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

clientId String 可选

客户端标识

dpi Number 96 可选

图片的设备分辨率(每英寸点数),IGS2.0参数

mode String null 可选

取图模式,IGS1.0参数,如果是快显取图(取值为hiRender或fast_display),这时文档为只读,只有bbox,w,h参数有效

style String null 可选

图层样式设置,IGS1.0参数,已过时,不建议使用

hiRender Boolean 可选

是否开启快显,当值为true时表示开启快显,出图不会带上hiRender参数,当值为false时,表示关闭快显,出图时会带上hiRender=false参数

Returns:
Type Description
Promise.<(Object|Blob)> 出图响应
Example
// 构造出图参数
const exportOptions = {}
server.exportImage(exportOptions).then((result) => {
  // 构造文件读取对象
  const fileReader = new FileReader()
  // 读取数据
  if (result instanceof Blob) {
    fileReader.readAsDataURL(result)
  }
  fileReader.onerror = () => {}
  // 数据读取完毕,e.target.result就是base64字符串
  fileReader.onload = (e) => {}
})

getImage(options){String}

service/igs/MapServer.js, line 627

根据参数获取图片的url

Name Type Default Description
options Object {} 可选

参数

Name Type Default Description
bbox Extent null 可选

出图范围,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

layers String null 可选

要显示的子图层,格式:show|hide|include|exclude:layerid1,layerid2,IGS1.0和2.0出图参数

size String '256,256' 可选

图片宽高,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

format String 'png' 可选

图片格式,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数,格式都为png/jpg/gif

dynamicLayers String null 可选

专题图出图参数,IGS2.0出图参数

isAntialiasing Boolean null 可选

返回的图片是否抗锯齿,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

layerFilters String null 可选

出图过滤信息,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

layerStyles String null 可选

样式信息,IGS2.0参数

clipping String null 可选

空间裁剪参数,IGS2.0参数

transparent Boolean true 可选

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

projectionSrs String null 可选

出图动态投影参数,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

f String 'image' 可选

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

clientId String 可选

客户端标识,IGS1.0和2.0以及IGS1.0的GDBP出图通用参数

dpi Number 96 可选

图片的设备分辨率(每英寸点数),IGS2.0参数

mode String null 可选

取图模式,IGS1.0参数,如果是快显取图(取值为hiRender或fast_display),这时文档为只读,只有bbox,w,h参数有效

style String null 可选

图层样式设置,IGS1.0以及IGS1.0的GDBP参数,已过时,不建议使用

gdbps String null 可选

需要出图的地址,多个用英文逗号分隔,IGS1.0的GDBP出图参数

mapUri String null 可选

地图资源路径,比如mapx的路径,如果该参数不为空,则gdbps无效,IGS1.0的GDBP出图参数

formatMode String 'normal' 可选

生成参数格式,normal: 按照默认逻辑设置参数,replace: 将部分参数设置为可替换的模版字符串

hiRender Boolean 可选

是否开启快显,当值为true时表示开启快显,出图不会带上hiRender参数,当值为false时,表示关闭快显,出图时会带上hiRender=false参数

Returns:
Type Description
String 图片请求地址

getLegend(options)

service/igs/MapServer.js, line 558

获取图例

Name Type Description
options Object

构造参数

Name Type Description
success getLegendSuccess 可选

请求成功时的回调

failure queryFailure 可选

请求失败时的回调

layers String 可选

图层索引列表,多个用英文逗号隔开

size String 可选

图例图片的大小,格式:width,height

where String 可选

属性条件,类SQL语句

bbox Extent 可选

矩形范围过滤条件

page Number 可选

图例结果分页页数

pageSize Number 可选

图例结果分页大小

maxQueryFeatureCount Number 可选

查询要素的最大条数

Example
//回调方式
mapServer.getLegend({
  layers: "0",
  size: '45,45',
  success: function (result) {
    console.log('请求成功:', result);
  },
  failure: function (result) {
    console.log('请求失败:', result);
  }
});
//promise方式
mapServer.getLegend({
  layers: "1"
}).then(function (result) {
  console.log('请求成功:', result);
}).catch(function (result) {
  console.log('请求失败:', result);
});

getMapDocTree(options){Promise.<Object>}

service/igs/MapServer.js, line 50

查询地图文档树结构(仅 IGS1.0 支持)。

当服务类型为 IGS2.0 时,该方法会抛出异常,表示当前版本不支持此能力。

Name Type Default Description
options Object {} 可选

查询参数。

Name Type Default Description
success queryLayerListSuccess 可选

请求成功回调。

failure queryFailure 可选

请求失败回调。

clientId String 可选

客户端标识。

guid String 可选

用户会话 ID,仅 IGS1.0 生效。

returnTree Boolean true 可选

是否返回树结构。

Returns:
Type Description
Promise.<Object> 地图文档树查询结果。
Example
// 回调方式
mapServer.getMapDocTree({
  success: function (result) {
    console.log('请求成功:', result)
  },
  failure: function (result) {
    console.log('请求失败:', result)
  }
})

getTile(options){String}

service/igs/MapServer.js, line 908

根据IGS版本获取出图地址,会根据IGS版本挑选出图参数

Name Type Description
options Object

出图参数

Name Type Default Description
lvl String | Number '{z}' 可选

瓦片级数

row String | Number '{y}' 可选

瓦片行号

col String | Number '{x}' 可选

瓦片列号

f String 'image' 可选

请求返回格式,支持html和image,IGS2.0参数

blankTile Boolean true 可选

当没有瓦片数据时,是否返回空白图,IGS2.0参数

Returns:
Type Description
String 出图地址,格式为: IGS1.0: http://{ip}:{port}/igs/rest/mrms/tile/{服务名称}/{z}/{y}/{x} IGS2.0: http://{ip}:{port}/igs/rest/services/{服务名称}/MapServer/tileImage/{z}/{y}/{x}?f=image&blankTile=true

queryFeatures(options){Promise.<QueryFeaturesResult>}

service/igs/MapServer.js, line 447

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

Name Type Description
options QueryFeaturesOptions

指定图层要素查询参数

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

queryFeaturesInLayers(options){Promise.<QueryFeaturesResult>}

service/igs/MapServer.js, line 457

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

Name Type Description
options QueryFeaturesInLayersOptions

多图层要素查询参数

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

queryLayerInfo(options){Promise.<Object>}

service/igs/MapServer.js, line 349

查询指定图层信息

Name Type Description
options Object

构造参数

Name Type Description
layerId String 可选

图层id,必填

success queryLayerInfoSuccess 可选

请求成功时的回调

failure queryFailure 可选

请求失败时的回调

clientId String 可选

客户端标识

mapIndex String 可选

地图索引,仅 IGS1.0 生效

returnFullStyle Boolean 可选

是否返回完整样式信息,仅 IGS1.0 生效

guid String 可选

用户会话id,仅 IGS1.0 生效

Returns:
Type Description
Promise.<Object> 图层详情查询结果
Example
//查询指定图层信息
//回调方式
mapServer.queryLayerInfo({
 //图层id
	layerId: 0,
	//成功回调
	success: function(result) {
		console.log('请求成功:',result);
	},
	failure: function (result) {
	  console.log('请求失败:', result);
	}
});
//promise方式
mapServer.queryLayerInfo({
  //图层id
  layerId: '0'
}).then(function (result) {
  console.log('请求成功:', result);
}).catch(function (result) {
  console.log('请求失败:', result);
});

queryLayerList(options){Promise.<Object>}

service/igs/MapServer.js, line 142

查询图层列表信息。

IGS2.0 返回 /layers 列表,IGS1.0 按 mapIndex 查询对应地图文档下图层。

Name Type Default Description
options Object {} 可选

查询参数。

Name Type Description
success queryLayerListSuccess 可选

请求成功回调。

failure queryFailure 可选

请求失败回调。

clientId String 可选

客户端标识。

mapIndex String 可选

地图索引,仅 IGS1.0 生效。

guid String 可选

用户会话 ID,仅 IGS1.0 生效。

Returns:
Type Description
Promise.<Object> 图层列表查询结果。
Example
// 回调方式
mapServer.queryLayerList({
  success: function (result) {
    console.log('请求成功:', result)
  },
  failure: function (result) {
    console.log('请求失败:', result)
  }
})

inherited queryServerInfo(options){Promise.<Object>}

service/BaseServer.js, line 140

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

Name Type Default Description
options Object {} 可选

查询参数

Name Type Default Description
success function 可选

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

failure function 可选

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

setSystemLib(options)

service/igs/MapServer.js, line 470

设置图层的系统库

Name Type Description
options Object

构造参数

Name Type Description
layerId String 可选

图层id,必填

systemLibId String 可选

系统库id,必填

systemLibName String 可选

系统库名,当systemLibId为空时有效,必填

success function 可选

请求成功时的回调

failure function 可选

请求失败时的回调