类名 MapView

# new MapView(options)

二维场景视图(mapboxgl引擎),对地图引擎进行管理,如果要对地图图层进行管理请参考Map
继承自zondy.MapView
参考示例: [初始化二维场景视图]
[ES5引入方式]:
zondy.mapboxgl.MapView()
[ES6引入方式]:
import { MapView } from '@mapgis/webclient-mapboxgl-plugin'

参数:

名称 类型 默认值 描述
options Object

构造参数

map Map

图层管理容器对象

viewId String

二维场景视图的容器(html的div标签)ID

zoom Number 0

初始化二维场景视图时显示级数

center Point

地图视图中心点

extent Extent

地图视图可视范围

scale Number

地图视图比例尺(比例尺的分母)

maxScale Number

地图视图的最大比例尺(比例尺的分母,该值越小,比例尺越大)。视图的当前比列尺不会大于地图视图的最大比例尺。默认值为undefined,undefined表示用户未设置,视图的最大比例尺不受限制。maxScale的值应该始终小于minScale的值。

minScale Number

地图视图的最小比例尺(比例尺的分母,该值越大,比例尺越小)。视图的当前比列尺不会小于地图视图的最小比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据全图范围,计算视图的最小比例尺。如果用户设置了该值,则地图将直接采用用户设置的值。minScale的值应该始终大于maxScale的值。

popup Object

地图弹框

  • BaseView#event:地图视图加载完毕事件
  • BaseView#event:鼠标点击事件
  • BaseView#event:鼠标双击事件
  • BaseView#event:鼠标按下事件
  • BaseView#event:鼠标抬起事件
  • BaseView#event:鼠标右键点击事件
  • BaseView#event:鼠标移动事件
  • BaseView#event:鼠标移出视图事件
  • BaseView#event:鼠标移入视图事件
  • BaseView#event:zoom变化事件
  • BaseView#event:地图移动事件
  • BaseView#event:地图大小变化事件
  • BaseView#event:键盘输入事件
  • BaseView#event:键盘按下事件
  • BaseView#event:键盘抬起事件
  • BaseView#event:地图视图改变事件

支持如下方法:
[1、视点跳转]
[2、获取当前视图的中心点]
[3、获取当前缩放级数]
[4、获取当前视图的地理范围]
[5、获取当前视图容器的宽高]
[6、导出场景视图的配置文件]
[7、克隆并返回一个新的场景视图对象]
[8、通过json构造并返回一个新的场景视图对象]
[9、屏幕快照]
10、注册事件
11、移除事件
[12、屏幕像素坐标点转地理坐标点]
[13、地理坐标点转屏幕像素坐标点]
[14、穿透检测]
[15、根据实际图层对象查询并返回基础图层]
[16、获取当前比例尺]

示例

初始化一个二维场景视图

// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map, MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
  // 二维场景视图的容器(html的div标签)ID
  viewId: "二维场景视图的容器的id",
  // 图层管理容器
  map: map
});

继承关系

  • zondy.MapViewBase

成员变量

SpatialReference

# readonly _spatialReference

视图空间参考系

Point

# center

地图视图中心点

Object

# readonly engineType

引擎类型,为'mapboxgl'

Extent

# extent

地图视图可视范围

Extent

# fullExtent

地图视图最大显示范围。用户不设置时,将地图范围作为地图视图的最大显示范围,用户设置时采用用户设置的。地图视图初始化时,会根据此范围计算地图视图的最小比例尺,当瓦片数据的最大比例尺小于此比例尺时,无法显示。在相同视图大小下,fullExtent越大,地图视图的最小比例尺越小。

Number

# readonly height

地图视图高度

Number

# maxScale

地图视图最大比例尺

Number

# minScale

地图视图最小比例尺

Popup

地图弹框popup

Number

# scale

地图视图比例尺

Boolean

# spatialReferenceLocked

是否锁定视图空间参考系

Boolean

# readonly stationary

试图是否静止

Number

# readonly width

地图视图宽度

Number

# zoom

地图层级

方法

# static fromJSON(json)

通过一个配置生成一个场景视图对象

参数:

名称 类型 描述
json Object

场景视图配置

MapView

# flyTo(options)

视点跳转

参数:

名称 类型 描述
options

跳转参数

center Array

跳转中心点

zoom Number

地图层级

extent Extent

按范围跳转

示例

中心点跳转示例

// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map, MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new .Map();
// 初始化地图视图对象
mapView = new MapView({
  // 视图id
  viewId: "view-id",
  // 图层管理容器
  map: map
});
// 视点跳转
mapView.flyTo({
  // 跳转中心点
  center: [{x}, {y}],
  // 地图层级
  zoom: {zoom}
});

按范围跳转示例

// ES5引入方式
const { Map } = zondy
const { Extent } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map, MapView, Extent } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new Map();
// 初始化地图视图对象
mapView = new MapView({
  // 视图id
  viewId: "view-id",
  // 图层管理容器
  map: map
});
mapView.flyTo({
  // 范围几何
  extent: new Extent({
     "xmin":10,
     "xmax":210,
     "ymin":0,
     "ymax":100,
  })
});

按范围跳转示例-拿到图层信息后跳转

// ES5引入方式
const { IGSMapImageLayer } = zondy.layer
// ES6引入方式
import { IGSMapImageLayer } from "@mapgis/webclient-mapboxgl-plugin"
const igsMapImageLayer = new IGSMapImageLayer({
  url: 'http://192.168.82.89:8089/igs/rest/services/Map/Hubei4326/MapServer'
});
map.add(igsMapImageLayer);
// 图层加载完毕
igsMapImageLayer.on('layer-view-created', function (result) {
  console.log("加载完毕:", result.layer)
  //视点跳转
  mapView.flyTo({
    extent: result.layer.extent
  });
})

# getCenter()

获取当前视图的中心点(经纬度中心点)

中心点对象

Object

# getExtent()

获取当前视图的地理范围

获取当前视图的地理范围

Extent

# getScale()

获取当前比例尺

比例尺 实际10000米:地图1米

Number

# getSize()

获取当前视图容器的宽高,单位像素

当前视图容器的宽高对象

Object

# getZoom()

获取当前缩放级数

当前缩放级数

Number

# goTo(goToTarget, options)

视点跳转为给定的目标

参数:

名称 类型 默认值 描述
goToTarget

跳转参数

center Point | Array

视图跳转中心点

zoom Number

视图跳转层级

scale Number

视图跳转比例尺

target Geometry | Array.<Geometry> | Collection.<Geometry>

按范围跳转

options

动画参数

animate Boolean true

新视图的过渡是否开启动画,默认开启动画

duration Number 200

动画的持续时间,以毫秒为单位,默认200毫秒

示例

中心点跳转示例

// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new .Map();
// 初始化地图视图对象
mapView = new MapView({
  // 视图id
  viewId: "view-id",
  // 图层管理容器
  map: map
});
// 视点跳转
mapView.goTo({
  // 跳转中心点
  center: [115.47643872463577, 30.980700423496124],
  // 地图层级
  zoom: 8
});

按范围跳转示例

// ES5引入方式
const { Map } = zondy
const { Extent, Circle } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new Map();
// 初始化地图视图对象
mapView = new MapView({
  // 视图id
  viewId: "view-id",
  // 图层管理容器
  map: map
});
const extent1 = new Extent({
  xmin: 111.88463529230717,
  ymin: 28.646934514163803,
  xmax: 116.89989408129225,
  ymax: 33.07991791253288,
})
const geometry2 = new Circle({
  center: [111, 29],
  radius: 100,
  radiusUnit: "kilometers",
})
mapView
  .goTo({
    target: [extent1, geometry2],
  })
  .then(() => {
    console.log("gotoExtent callback")
  })

# hitTest(screenPoint)

穿透检测,图元拾取。目前支持graphic类型拾取结果,支持图层类型GraphicLayer,FeatureLayer。

参数:

名称 类型 描述
screenPoint Object

屏幕像素坐标点,例如{ x: 900, y: 500 }

图元检测结果

Array
示例

根据基础图层对象或者图层id查询并返回实际图层

// ES5引入方式
const { Map, Feature } = zondy
const { Point, Polygon, MultiPolygon ,Extent, Circle } = zondy.geometry
const { GraphicsLayer, IGSFeatureLayer, IGSTileLayer } = zondy.layer
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin";
import { Map, Point, Polygon, MultiPolygon ,Extent, GraphicsLayer, Feature, Circle, IGSFeatureLayer, IGSTileLayer } from "@mapgis/webclient-common";
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
this.mapView = new MapView({
  // 视图id
  viewId: "mapgis-2d-viewer",
  // 图层管理容器
  map: map,
})
// 创建一个要素crs
const feature = [
  new Feature({
    id: '11113',
    geometry: new Circle({
      center: [113, 35],
      radius: 10000,
      radiusUnit: 'kilometers',
    })
  }),
  new Feature({
    id: '11114',
    geometry: new Polygon({
      coordinates: [
        // 外圈
        [
          [113.0, 29.0],
          [116.0, 29.0],
          [116.0, 35.0],
          [113.0, 35.0],
          [113.0, 29.0]
        ]
      ]
    })
  }),
  new Feature({
    id: '11115',
    geometry:new MultiPolygon({
      coordinates: [
        [
          // 外圈
          [
            [112.0, 28.0],
            [115.0, 28.0],
            [115.0, 30.0],
            [112.0, 30.0],
            [112.0, 28.0]
          ],
          // 第一个内圈
          [
            [112.2, 28.2],
            [112.2, 29.8],
            [114.8, 29.8],
            [114.8, 28.2],
            [112.2, 28.2]
          ]
        ]
      ]
    })
  })
]
// 初始化几何图层
const graphicsLayer = new GraphicsLayer({
  graphics:feature
})
map.add(this.graphicsLayer)
const result = this.mapView.hitTest({x:1100,y:600})

# takeScreenshot(optionsopt)

屏幕快照

参数:

名称 类型 默认值 描述
options Object {}

屏幕快照配置配置

format PictureFormat PictureFormat.png

照片格式,支持png,jpeg格式

filename String 'screenshotFile'

下载文件名

width Number

图片宽度

height Number

图片高度

x Number

图片原点x

y Number

图片原点y

isDownload Boolean true

是否下载图片

屏幕快照 {dataUrl String },且浏览器会下载图片

Object
示例

屏幕快照

// ES5引入方式
const { Map } = zondy
const { PictureFormat } = zondy.Enum
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
import { Map, PictureFormat } from "@mapgis/webclient-common"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
  // 二维场景视图的容器(html的div标签)ID
  viewId: "二维场景视图的容器的id",
  // 图层管理容器
  map: map
})
// 设置屏幕快照参数
const screenshotOptions: {
   format: PictureFormat.png
}
// 开始屏幕快照
mapView.takeScreenshot(screenshotOptions).then((result) => {
  // 获取base64格式的url字符串
  console.log("dataUrl:", result.dataUrl)
})

# toJSON()

导出场景视图的配置文件

导出的配置文件

Object

# toMap(screenPoint)

屏幕像素坐标点转地理坐标点

参数:

名称 类型 描述
screenPoint Object

屏幕像素坐标点,例如{ x: 900, y: 500 }

地理坐标点

Point
示例

屏幕像素坐标点转地理坐标示例

// ES5引入方式
const { Map } = zondy
const { Point, Extent } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
import { Map, Point, Extent } from "@mapgis/webclient-common"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
  // 视图id
  viewId: "mapgis-2d-viewer",
  // 图层管理容器
  map: map
});
const screenPoint = { x: 900, y: 500 }
mapView.toMap(screenPoint)

# toScreen(point)

地理坐标点转屏幕像素坐标点

参数:

名称 类型 描述
point Point

地理坐标点

屏幕像素坐标点

Object
示例

地理坐标点转屏幕像素坐标示例

// ES5引入方式
const { Map } = zondy
const { Point, Extent } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
import { Map, Point, Extent } from "@mapgis/webclient-common"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
  // 视图id
  viewId: "mapgis-2d-viewer",
  // 图层管理容器
  map: map
});
const geoPoint = new Point({ coordinates: [123, 23, 0] })
mapView.toScreen(geoPoint)
构造函数
成员变量
方法
事件