Class: ArcGISMapServer

ArcGISMapServer

new ArcGISMapServer(options)

service/igs/arcgis/ArcGISMapServer.js, line 12

ArcGIS的MapServer服务

Name Type Description
options Object

构造参数

Name Type Default Description
url String 可选

服务基地址

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

exportImage(options)

service/igs/arcgis/ArcGISMapServer.js, line 356

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

Name Type Description
options
Name Type Default Description
method FetchMethod FetchMethod.post 可选

请求方式

bbox Extent null 可选

出图范围,格式:xmin,ymin,xmax,ymax,如果设置了projectionSrs参数,确保bbox是projectionSrs参照系的范围

layers String null 可选

图层状态,格式:show|hide|include|exclude:layerid1,layerid2

size String '256,256' 可选

图片宽高

transparent Boolean true 可选

返回的图片是否透明,支持true/false, 默认true

format String 'png' 可选

返回图片格式,支持png/jpg/gif,默认png

imageSR Object null 可选

投影空间参照系,支持EPSG格式参考系

bboxSR Object null 可选

bbox范围值的坐标系

f String 'image' 可选

返回格式,支持image和html

find(options)

service/igs/arcgis/ArcGISMapServer.js, line 37

针对地图或地图中一个或多个图层进行属性查询

Name Type Description
options

查询参数

Name Type Default Description
searchText String 可选

搜索包含该字符串的要素,在该服务下的所有文档中搜索,必填

layers String 可选

要搜索的图层id,多个图层id以逗号分割,必填

success function 可选

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

failure function 可选

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

contains Boolean true 可选

匹配字符串时,是否是包含匹配,默认为true,即包含匹配,false时进行全词匹配

searchFields String 可选

要搜索的字段名,多个字段名以逗号分割,不指定则全字段搜索

returnGeometry Boolean true 可选

是否返回几何数据

geometryPrecision Number 3 可选

返回几何数据的小数点位数

getImage(options){ip}

service/igs/arcgis/ArcGISMapServer.js, line 445

根据参数获取图片的url,会将queryParameters对象转为字符串,并拼接在问号后面

Name Type Description
options Object

问号后的请求参数

Name Type Default Description
layers String null 可选

要显示的子图层id,多个子图层以逗号分隔

bbox Extent '{bbox}' 可选

出图范围

size String '256,256' 可选

图片宽高

format String 'png' 可选

图片格式

f String 'image' 可选

接口的返回数据格式,支持image和html

transparent Boolean true 可选

图片背景是否透明

imageSR Object null 可选

要动态投影到的目标坐标系

bboxSR Object null 可选

bbox范围值的坐标系

formatMode String 'normal' 可选

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

Returns:
Type Description
ip String 图片的url,格式为: https://:{port}/arcgis/rest/services/{服务名称}/MapServer/export?f=image&layers={layers}&format={format}&transparent={transparent}&imageSR={imageSR}&bbox={bbox}&size={size}&key1=value21&key2=value2

getLayers(options)

service/igs/arcgis/ArcGISMapServer.js, line 256

获取所有图层资源

Name Type Description
options

查询参数

Name Type Description
success function 可选

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

failure function 可选

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

callback String 可选

getLegend(options)

service/igs/arcgis/ArcGISMapServer.js, line 287

获取图例

Name Type Description
options

查询参数

Name Type Default Description
success function 可选

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

failure function 可选

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

dpi Number 96 可选

图例图像的分辨率

size String '15,15' 可选

图例图像的大小

getTile(){String}

service/igs/arcgis/ArcGISMapServer.js, line 499

获取ArcGIS瓦片出图模板地址

Returns:
Type Description
String ArcGIS瓦片出图模板地址,格式为: https://{ip}:{port}/arcgis/rest/services/{服务名称}/MapServer/tile/{z}/{y}/{x}?key1=value1&key2=value2...

identify(options)

service/igs/arcgis/ArcGISMapServer.js, line 128

识别地图中要素信息

Name Type Description
options

查询参数

Name Type Default Description
geometry Geometry 可选

要识别的几何对象,必传

srs SpatialReference | undefined 可选

输入、输出几何对象以及 mapExtent 的坐标参考系统, 默认会以geometry的spatialReference作为输入几何的空间参考系

layerDefs Array.<LayerDef> | Array.<Object> | undefined 可选

多图层的属性过滤条件,设置多个不会过滤图层,请使用layers参数过滤图层。当前layerDef仅支持layerId、where, 不支持outFields。ArcGIS服务对于where条件需要输入尽量不要为空,部分版本不传入where条件查询会报错

layers String 可选

指定在哪些图层上进行识别操作。可选值:top(仅最顶层)、visible(所有可见层)、all(所有图层)。也可以指定特定图层ID,如 visible:2,5(仅识别可见且ID为2和5的图层)。默认为top

tolerance Number 2 可选

容差(单位:像素),默认为2。点击或指定点位置时,会以此容差范围为半径创建一个搜索范围,识别该范围内的要素。

mapExtent String 可选

识别范围,必传参数,格式为:xmin,ymin,xmax,ymax

imageDisplay String 可选

当前地图视图的屏幕显示参数,格式为 width,height,dpi。宽度和高度必须是整数。例如600,550,96

returnGeometry Boolean true 可选

是否返回几何数据

maxAllowableOffset Number | undefined 可选

允许的最大误差,默认单位为数据的原始坐标系的单位,如果是EPSG:3857则为米,如果是EPSG:4326则为度。根据数据输入的空间参考系单位 返回的几何信息不超出这个误差值

geometryPrecision Number | undefined 可选

返回要素几何信息中坐标xy的精度,仅支持整数,输入1表示查询出的要素坐标只保留一位小数

dynamicLayers String | undefined 可选

专题图出图参数

returnZ Number false 可选

是否返回Z轴,默认为false

returnM Boolean false 可选

是否返回测试值,默认为false

f String 'json' 可选

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

Example
单点查询用例
  arcgisMapServer
        .identify({
          geometry: new Point({
            coordinates: [113, 30],
            spatialReference: new SpatialReference("EPSG:4326"),
          }),
          mapExtent: "110,28,115,30",
          // geometry: extent,
          imageDisplay: "919,930,96",
          tolerance: 1,
          // 查询id为10的图层,如果查全图层可以设置为'all'
          layers: "visible:10",
          // 筛选条件
          layerDefs: [
            {
              layerId: "6",
              where: `1=1`,
            },
          ],
        }).then((res)=>{
          res.data.results.forEach((result) => {
            // 查询返回的要素对象
            const feature = result.feature;
          });
        })

queryFeatures(options){Promise.<QueryFeaturesResult>}

service/igs/arcgis/ArcGISMapServer.js, line 339

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

Name Type Description
options QueryFeauresOptions

指定图层要素查询参数

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

queryLayerInfo(options)

service/igs/arcgis/ArcGISMapServer.js, line 322

查询指定图层信息

Name Type Description
options

查询参数

Name Type Description
success function 可选

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

failure function 可选

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

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