new MapView(options)
支持如下方法:
[1、视点跳转][2、销毁视图对象]
[3、获取当前视图的中心点]
[3、获取当前视图的像素中心点]
[4、获取当前缩放级数]
[5、获取当前视图的地理范围]
[6、获取当前视图的像素范围]
[7、获取最小缩放级数]
[8、获取最大缩放级数]
[9、获取当前视图容器的宽高]
[10、导出场景视图的配置文件]
[11、克隆并返回一个新的场景视图对象]
[12、通过json构造并返回一个新的场景视图对象]
[13、屏幕快照]
14、注册事件15、移除事件[15、屏幕像素坐标点转地理坐标点]
[16、地理坐标点转屏幕像素坐标点]
[17、穿透检测]
[18、根据实际图层对象查询并返回基础图层]
[19、获取当前比例尺]
[20、销毁视图对象]
二维场景视图(leaflet引擎),对地图引擎进行管理,如果要对地图图层进行管理请参考Map,
继承自zondy.MapView
参考示例:
[初始化二维场景视图]
[ES5引入方式]:
zondy.leaflet.MapView()
[ES6引入方式]:
import { MapView } from '@mapgis/webclient-leaflet-plugin'
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
构造参数
|
Fires
- 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:引擎视图创建完毕事件
- BaseView#event:地图视图改变事件
Example
// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.leaflet
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-leaflet-plugin"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
// 二维场景视图的容器(html的div标签)ID
viewId: "二维场景视图的容器的id",
// 图层管理容器
map: map
});
Extends
- zondy.MapView
Members
-
animationBoolean
-
是否启用视角跳转动画
-
centerPoint
-
地图视图中心点
-
engineTypeEngineType
-
引擎类型,为'leaflet'
-
extentExtent
-
地图视图可视范围
-
fullExtentExtent
-
地图视图最大显示范围。用户不设置时,将地图范围作为地图视图的最大显示范围,用户设置时采用用户设置的。地图视图初始化时,会根据此范围计算地图视图的最小比例尺,当瓦片数据的最大比例尺小于此比例尺时,无法显示。在相同视图大小下,fullExtent越大,地图视图的最小比例尺越小。
-
heightNumber
-
地图视图高度
-
maxScaleNumber
-
地图视图的最大比例尺(比例尺的分母,该值越小,比例尺越大)。视图的当前比列尺不会大于地图视图的最大比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。maxScale的值应该始终小于minScale的值。
-
minScaleNumber
-
地图视图的最小比例尺(比例尺的分母,该值越大,比例尺越小)。视图的当前比列尺不会小于地图视图的最小比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。minScale的值应该始终大于maxScale的值。
-
popupPopup
-
地图视图弹框popup
-
preferCanvasBoolean
-
视图渲染方式是否为canvas
-
rotationBoolean
-
地图视图旋转选项。单位为度,默认为0,表示不进行旋转
-
scaleNumber
-
地图视图比例尺(比例尺的分母)
-
spatialReferenceLockedBoolean
-
是否锁定视图空间参考系
-
stationaryBoolean
-
试图是否静止
-
widthNumber
-
地图视图宽度
-
zoomNumber
-
视图层级
Methods
-
MapView.fromJSON(json){MapView}
view/MapView.js, line 1551 -
Name Type Description jsonObject json对象
Returns:
Type Description MapView 一个新的场景视图对象 -
MapView.fromJSON(json){MapView}
view/MapView.js, line 2560 -
通过一个配置生成一个场景视图对象
Name Type Description jsonObject 场景视图配置
Returns:
Type Description MapView -
clone(){MapView}
view/MapView.js, line 1542 -
Returns:
Type Description MapView 一个新的场景视图对象 -
destroy()
view/MapView.js, line 1412 -
-
flyTo(options)
view/MapView.js, line 366 -
Name Type Description options跳转参数
Name Type Default Description centerArray 可选 跳转中心点
zoomNumber 1 可选 地图层级
extentExtent 可选 按范围跳转
Examples
中心点跳转示例 // ES5引入方式 const { Map } = zondy const { MapView } = zondy.leaflet // ES6引入方式 import { Map } from "@mapgis/webclient-common" import { MapView } from "@mapgis/webclient-leaflet-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.leaflet // ES6引入方式 import { Map, Extent } from "@mapgis/webclient-common" import { MapView } from "@mapgis/webclient-leaflet-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-common" 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}
view/MapView.js, line 1423 -
Returns:
Type Description Object 中心点对象 -
getExtent(){Extent}
view/MapView.js, line 1668 -
Returns:
Type Description Extent 获取当前视图的地理范围 -
getMaxZoom(){Number}
view/MapView.js, line 1494 -
Returns:
Type Description Number 最大缩放级数 -
getMinZoom(){Number}
view/MapView.js, line 1478 -
Returns:
Type Description Number 最小缩放级数 -
getPixelCenter(){Object}
view/MapView.js, line 1510 -
Returns:
Type Description Object 像素中心点对象 -
getPixelExtent(){Object}
view/MapView.js, line 1502 -
Returns:
Type Description Object 视图宽高对象 -
getPixelWorldExtent(){Object}
view/MapView.js, line 1518 -
Returns:
Type Description Object 当前视图的像素范围 -
getScale(){Number}
view/MapView.js, line 2211 -
Returns:
Type Description Number 比例尺 实际10000米:地图1米 -
getSize(){Object}
view/MapView.js, line 1486 -
Returns:
Type Description Object 当前视图容器的宽高对象 -
getZoom(){Number}
view/MapView.js, line 1456 -
Returns:
Type Description Number 当前缩放级数 -
getZoomByExtent(value){Number}
view/MapView.js, line 1688 -
Name Type Description valueExtent 范围对象
Returns:
Type Description Number 视野范围获取对应的层级 -
goTo(goToTarget, options){Promise.<Boolean>}
view/MapView.js, line 571 -
Name Type Description goToTarget跳转参数
Name Type Default Description centerPoint | Array 可选 视图跳转中心点
zoomNumber 可选 视图跳转层级
scaleNumber 可选 视图跳转比例尺
layerLayer | SubLayer | undefined 可选 跳转的图层
goToLayerModeString 'extent' 可选 跳转图层的模式,仅在传入layer参数且layer为瓦片类图层时生效。支持两种模式,'extent' 表示根据图层范围进行跳转, 'fix-level'按范围并调整到到整数级
targetGeometry | Array.<Geometry> | Collection.<Geometry> 可选 按范围跳转
options动画参数
Name Type Default Description animateBoolean true 可选 新视图的过渡是否开启动画,默认开启动画
durationNumber 可选 动画的持续时间,以毫秒为单位,默认不设置,动画表现为引擎默认动画效果
Returns:
Type Description Promise.<Boolean> 视图跳转是否成功 Examples
中心点跳转示例 // ES5引入方式 const { Map } = zondy const { MapView } = zondy.leaflet // ES6引入方式 import { Map } from "@mapgis/webclient-common" import { MapView } from "@mapgis/webclient-leaflet-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.leaflet // ES6引入方式 import { Map, Extent, Circle } from "@mapgis/webclient-common" import { MapView } from "@mapgis/webclient-leaflet-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){Array}
view/MapView.js, line 1939 -
穿透检测,图元拾取。目前支持graphic类型拾取结果,支持图层类型GraphicLayer,FeatureLayer。
Name Type Description screenPointObject 屏幕像素坐标点,例如{ x: 900, y: 500 }
Returns:
Type Description Array 图元检测结果 Example
根据基础图层对象或者图层id查询并返回实际图层 // ES5引入方式 const { Map, Feature } = zondy const { Point, Polygon, MultiPolygon ,Extent, Circle } = zondy.geometry const { GraphicsLayer, IGSFeatureLayer, IGSTileLayer } = zondy.layer const { MapView } = zondy.leaflet // ES6引入方式 import { MapView } from "@mapgis/webclient-leaflet-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, }) // 创建一个要素 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(options){Object}
view/MapView.js, line 1652 -
屏幕快照
Name Type Default Description optionsObject {} 可选 屏幕快照配置配置
Name Type Default Description formatPictureFormat PictureFormat.PNG 可选 照片格式,支持png,jpeg格式
filenameString 'screenshotFile' 可选 下载文件名
widthNumber 可选 图片宽度
heightNumber 可选 图片高度
xNumber 可选 图片原点x
yNumber 可选 图片原点y
isDownloadBoolean true 可选 是否下载图片
Returns:
Type Description Object 屏幕快照 {dataUrl String },且浏览器会下载图片 Example
屏幕快照 // ES5引入方式 const { Map } = zondy const { MapView } = zondy.leaflet const { PictureFormat } = zondy.Enum // ES6引入方式 import { Map, PictureFormat } from "@mapgis/webclient-common" import { MapView } from "@mapgis/webclient-leaflet-plugin" // 初始化图层管理容器 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}
view/MapView.js, line 1526 -
Returns:
Type Description Object 导出的配置文件 -
toMap(screenPoint){Point}
view/MapView.js, line 1576 -
Name Type Description screenPointObject 屏幕像素坐标点,例如{ x: 900, y: 500 }
Returns:
Type Description Point 地理坐标点 Example
屏幕像素坐标点转地理坐标示例
// ES6引入方式 import { MapView } from "@mapgis/webclient-leaflet-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){Object}
view/MapView.js, line 1603 -
Name Type Description pointPoint 地理坐标点
Returns:
Type Description Object 屏幕像素坐标点 Example
地理坐标点转屏幕像素坐标示例
// ES6引入方式 import { MapView } from "@mapgis/webclient-leaflet-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)