类名 Map

# new Map(options)

图层管理容器,和地图引擎无关,通过此对象而不是地图引擎来对图层进行管理
[ES5引入方式]:
Zondy.Map()
[ES6引入方式]:
import { Map } from "@mapgis/webclient-common"

参数:

名称 类型 描述
options Object

构造参数

basemap Basemap

设置地图视图中的底图;
1、如果底图存在,则会使用底图上的参考系作为地图视图的参考系,如果没有,则使用常规图层上的坐标系;
2、底图图层在常规图层的最下面; 3、除GraphicsLayer外的二维地图都可以作为底图

查看源代码 common/document/mapCollection/Map.js, line 21

支持如下方法:
[1、添加图层对象]
[2、添加多个图层]
[3、根据id查询图层]
[4、删除指定图层]
[5、移除多个图层]
[6、删除所有图层]
[7、调整图层顺序]
[8、销毁Map对象]
[9、通过json对象构造并返回一个新的Map对象]
[10、转换为json对象]
[11、克隆并返回一个新的Map对象]

示例

初始化Map对象

// ES5引入方式
const { Map } = Zondy
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
//创建Map对象
let map = new Map();

添加底图图层

// ES5引入方式
const { Map, Basemap, Collection } = Zondy
const { IGSTileLayer } = Zondy.Layer
// ES6引入方式
import { Map, Basemap, Collection, IGSTileLayer } from "@mapgis/webclient-common"
//创建Map对象
const map = new Map({
  // 初始化底图图层集合
  basemap: new Basemap({
    // 可以设置多个图层到底图集合中
    baseLayers: new Collection(
      [
        // 创建一个图层
        new IGSTileLayer({
          url: '服务及地址'
        })
      ]
    )
  })
});

继承关系

成员变量

Collection

# allLayers

图层管理容器中所有的子图层,包括子图层的子图层,并穷举所有子图层

查看源代码 common/document/mapCollection/Map.js, line 172

Collection

# basemap

基础地图

查看源代码 common/document/mapCollection/Map.js, line 177

Collection

# layers

图层管理容器中包含的子图层

查看源代码 common/document/mapCollection/Map.js, line 167

方法

# static fromJSON(json)

通过json对象构造并返回一个新的Map对象

参数:

名称 类型 描述
json Object

json数据

查看源代码 common/document/mapCollection/Map.js, line 197

一个新的Map对象

Map

# add(layer)

添加图层对象

参数:

名称 类型 描述
layer Object

要添加的图层对象

查看源代码 common/document/mapCollection/Map.js, line 286

示例
//添加图层
map.add(layer);

# addMany(layers)

添加多个图层

参数:

名称 类型 描述
layers Array

要添加的图层数组

查看源代码 common/document/mapCollection/Map.js, line 458

示例
map.addMany(layers);

# clone()

克隆并返回一个新的Map对象

查看源代码 common/document/mapCollection/Map.js, line 275

一个新的Map对象

Map

# destroy()

销毁Map对象

查看源代码 common/document/mapCollection/Map.js, line 366

示例
map.destroy()

# findLayerById(id)

根据id查询图层

参数:

名称 类型 描述
id String

图层id

查看源代码 common/document/mapCollection/Map.js, line 382

Object 找到的图层

示例
//根据id查询图层
map.findLayerById('图层id');

# off(typesopt, fnopt, contextopt)

参数:

名称 类型 描述
types string

移除指定事件类型上绑定的回调函数
当类型为字符串时,可以移除单个或多个事件类型绑定的回调函数,单个事件:"click",多个事件:以空格分割:"click double-click";
当types为对象时,使用如下方式移除事件:{'click': onClickFun, 'mouse-move': onMouseMoveFun}

fn function

事件回调函数,当types为字符串,且不指定要删除的回调函数时,删除该事件上的所有回调函数

context Object

事件回调函数的this关键字将指向的对象

Inherited From:

查看源代码 common/base/Evented.js, line 269

当前实例

Object
示例

移除一个事件的指定回调函数

// 一个事件的回调函数
const clickFunction = function (event) {
  console.log("点击事件:", event)
}
// 调用MapView或SceneView的off方法移除一个事件的回调函数
view.off('click', clickFunction)

移除一个事件的所有回调函数

// 一个事件的回调函数1
const clickFunction1 = function (event) {
  console.log("点击事件1:", event)
}

// 一个事件的回调函数2
const clickFunction2 = function (event) {
  console.log("点击事件2:", event)
}

// 调用MapView或SceneView的off方法移除一个事件的所有回调函数
// 不指定回调函数,则移除该事件上的所有绑定的回调函数
view.off('click')

移除多个事件的同一个指定的回调函数

// 多个事件的同一个回调函数
const eventFunction = function (event) {
  console.log("事件:", event)
}
// 调用MapView或SceneView的off方法移除多个事件的同一个指定的回调函数
view.off('click double-click', eventFunction)

移除多个指定事件的回调函数

// 一个事件的回调函数
const clickFunction = function (event) {
  console.log("click事件:", event)
}
// 调用MapView或SceneView的off方法移除多个指定事件的回调函数
view.off({
   // 移除click事件上一个指定的函数
  "click": clickFunction,
  // 移除double-click上所有指定的函数
  "double-click": undefined
})

删除时指定上下文 - types类型为字符串

// 一个事件的回调函数
const clickFunction = function (event) {
  console.log("点击事件:", event)
}
// 调用MapView或SceneView的off方法移除一个事件的回调函数
view.off('click', clickFunction, view)
// 调用MapView或SceneView的off方法移除一个事件的所有回调函数
view.off('click', undefined, view)

删除时指定上下文 - types类型为对象

// 一个事件的回调函数
const clickFunction = function (event) {
  console.log("click事件:", event)
}
// 调用MapView或SceneView的off方法移除多个指定事件的回调函数
view.off({
   // 移除click事件上一个指定的函数
  "click": clickFunction,
  // 移除double-click上所有指定的函数
  "double-click": undefined
}, view)

# on(typesopt, fnopt, contextopt)

参数:

名称 类型 默认值 描述
types String | Object null

事件类型
当types为字符串时,可以定义单个或多个事件,单个事件:"click",多个事件:以空格分割:"click double-click";
当types为对象时,使用如下方式指定事件:{'click': onClickFun, 'mouse-move': onMouseMoveFun}

fn function null

事件回调函数

context Object null

事件回调函数的this关键字将指向的对象

Inherited From:

查看源代码 common/base/Evented.js, line 173

当前实例

Object
示例

注册一个事件

// 初始化一个点击事件回调函数
const clickFunction = function (event) {
  console.log("点击事件:", event)
}
// 调用MapView或SceneView的on方法注册一个点击事件
view.on('click', clickFunction)

一次注册多个事件 - 同一个回调函数

// 初始化一个事件回调函数
const eventFunction = function (event) {
  console.log("事件:", event)
}

// 调用MapView或SceneView的on方法注册多个事件
// 多个事件类型使用同一个回调函数
view.on('click right-click-down', eventFunction)

一次注册多个事件 - 分别指回调应函数

// 初始化一个左键点击事件回调函数
const clickFunction = function (event) {
  console.log("click事件:", event)
}

// 初始化一个右键按下事件回调函数
const rightClickFunction = function (event) {
  console.log("right-click-down事件:", event)
}

// 调用MapView或SceneView的on方法注册多个事件
// 每一个事件类型,使用单独的回调函数
// 注意使用此种方式,一种类型的事件仅能指定一个回调函数
view.on({
  "click": clickFunction,
  "right-click-down": rightClickFunction
})

指定上下文 - types类型为字符串

// 初始化一个点击事件回调函数
const clickFunction = function (event) {
  console.log("点击事件:", event)
  console.log("上下文对象:", this)
}
// 调用MapView或SceneView的on方法注册一个点击事件
// 指定view为回调函数的上下文对象
view.on('click', clickFunction, view)

指定上下文 - types类型为对象

// 初始化一个点击事件回调函数
const clickFunction = function (event) {
  console.log("点击事件:", event)
  console.log("上下文对象:", this)
}
// 调用MapView或SceneView的on方法注册一个点击事件
// 指定view为回调函数的上下文对象
view.on({
  "click": clickFunction,
  "right-click-down": clickFunction
}, view)

# remove(layer)

删除指定图层,需要传入一个图层对象

参数:

名称 类型 描述
layer Object

要删除的图层对象

查看源代码 common/document/mapCollection/Map.js, line 397

示例
//删除指定图层
map.findLayerById(layer);

# removeAll()

删除所有图层

查看源代码 common/document/mapCollection/Map.js, line 434

示例
map.removeAll();

# removeMany(layers)

移除多个图层

参数:

名称 类型 描述
layers Array

要移除的图层数组

查看源代码 common/document/mapCollection/Map.js, line 495

示例
map.removeMany(layers);

# reorder(layer, index)

调整图层顺序

参数:

名称 类型 描述
layer Object

要调整顺序的图层

index Number

指定的index

查看源代码 common/document/mapCollection/Map.js, line 534

示例
map.reorder(layer, '要移动到的index');

# toJSON()

转换为json对象

查看源代码 common/document/mapCollection/Map.js, line 257

导出的json对象

Object

事件

# 删除图层事件

删除图层事件

属性:
Name Type Attributes Default Description
event Object

事件对象

type String <optional>
'layer-remove'

删除图层事件

layer Layer <optional>
null

被删除的图层对象

view View <optional>
null

地图视图对象

sourceTarget Map <optional>
null

事件发起对象

target View <optional>
null

事件接收对象

查看源代码 common/document/mapCollection/Map.js, line 117

示例

删除图层事件

map.on('layer-remove', function (event) {
  // 删除图层事件
  console.log("删除图层事件:", event)
});

# 添加图层事件

添加图层事件

属性:
Name Type Attributes Default Description
event Object

事件对象

type String <optional>
'layer-add'

添加图层事件

layer Layer <optional>
null

被添加的图层对象

view View <optional>
null

地图视图对象

sourceTarget Map <optional>
null

事件发起对象

target View <optional>
null

事件接收对象

查看源代码 common/document/mapCollection/Map.js, line 85

示例

添加图层事件

map.on('layer-add', function (event) {
  // 添加图层事件
  console.log("添加图层事件:", event)
});

# 添加多个图层事件

添加多个图层事件

属性:
Name Type Attributes Default Description
event Object

事件对象

type String <optional>
'layer-add-many'

添加多个图层事件

layers Array.<Layer> <optional>
[]

被添加的所有图层对象数组

view View <optional>
null

地图视图对象

sourceTarget Map <optional>
null

事件发起对象

target View <optional>
null

事件接收对象

查看源代码 common/document/mapCollection/Map.js, line 101

示例

添加多个图层事件

map.on('layer-add-many', function (event) {
  // 添加多个图层事件
  console.log("添加图层事件:", event)
});

# 移除多个图层事件

移除多个图层事件

属性:
Name Type Attributes Default Description
event Object

事件对象

type String <optional>
'layer-remove-many'

移除多个图层事件

layers Array.<Layer> <optional>
[]

被删除的所有图层对象数组

view View <optional>
null

地图视图对象

sourceTarget Map <optional>
null

事件发起对象

target View <optional>
null

事件接收对象

查看源代码 common/document/mapCollection/Map.js, line 133

示例

移除多个图层事件

map.on('layer-remove-many', function (event) {
  // 移除多个图层事件
  console.log("移除多个图层事件:", event)
});

# 移除所有图层事件

移除所有图层事件

属性:
Name Type Attributes Default Description
event Object

事件对象

type String <optional>
'layer-remove-all'

移除所有图层事件

view View <optional>
null

地图视图对象

sourceTarget Map <optional>
null

事件发起对象

target View <optional>
null

事件接收对象

查看源代码 common/document/mapCollection/Map.js, line 149

示例

移除所有图层事件

map.on('layer-remove-all', function (event) {
  // 移除所有图层事件
  console.log("移除所有图层事件:", event)
});
构造函数
成员变量
方法
事件