# 地图视图
加载地图或场景的组件。
# 代码演示
<template>
<mp-web-map-pro :document="document" :map-style="style" v-bind="mapOptions" />
<mp-web-scene-pro
:document="document"
:map-style="style"
:lib-path="cesiumLibPath"
:plugin-path="cesiumPluginPath"
v-bind="mapOptions"
/>
</template>
# API
# MpWebMapPro
# 属性
参数 | 说明 | 类型 | 可选值 | 默认值 | 版本 |
---|---|---|---|---|---|
document | 文档对象 | object | |||
mapStyle | 地图样式,可参考 Mapbox 的原生样式 | object | |||
center | 地图中心坐标 | [object, array] | { lng: 114, lat: 30 } | ||
zoom | 地图缩放级 | number | 4 | ||
splitScreen | 是否处于分屏阶段 | boolean | false | ||
minimumLevel | 地图最小显示级别 | number | 0 | ||
maximumLevel | 地图最大显示级别 | number | 22 |
# MpWebScenePro
# 属性
参数 | 说明 | 类型 | 可选值 | 默认值 | 版本 |
---|---|---|---|---|---|
document | 文档对象 | object | |||
libPath | Cesium 库的路径 | string | |||
pluginPath | Cesium 插件的路径 | string | |||
dataFlowList | 数据流列表对象 | object | |||
popupShowType | 弹出框显示位置。可设置default ,弹出框显示在对应标注位置,和right ,弹出框显示在右侧 | string | default/right | ||
popupOverlay | 右侧弹框对象 | object | {} | ||
minimumLevel | 地图最小显示级别 | number | 0 | ||
maximumLevel | 地图最大显示级别 | number | 22 |
提示
如何获取 document? 只需要在微件内部混入 widgetMixin 即可。
<template>
<div></div>
</template>
<script lang="ts">
import {
WidgetMixin,
LayerType,
IGSSceneSublayerType,
LoadStatus,
Objects
} from '@mapgis/web-app-framework'
const { ColorUtil } = Util
export default {
name: 'MpProfileAnalysis',
mixins: [WidgetMixin],
watch: {
document: {
handler: 'getScenes',
immediate: true,
deep: true
}
},
methods: {
/**
* 动态获取基础目录树上已勾选的三维数据
*/
getScenes() {
if (!this.document) return
const layers = []
this.document.defaultMap
.clone()
.getFlatLayers()
.forEach((layer, index) => {
if (layer.loadStatus === LoadStatus.loaded) {
if (layer.type === LayerType.IGSScene) {
if (layer.activeScene) {
const { type } = layer.activeScene.sublayers[0]
if (
type === IGSSceneSublayerType.elevation ||
type === IGSSceneSublayerType.modelCache
) {
// 获取地形和模型
layers.push(layer)
}
}
} else if (layer.type === LayerType.STKTerrain) {
layers.push(layer)
}
}
})
this.layers = layers
if (layers.length > 0) {
this.layer = layers[layers.length - 1]
} else {
this.layer = layers
this.layer = null
}
}
}
}
</script>
<style lang="less" scoped></style>
// 图层加载状态
export enum LoadStatus {
notLoaded, // 没有加载过
loading, // 正在加载
loaded, // 加载成功
failed // 加载失败
}
// 图层的类型
export enum LayerType {
Unknown, // 未知
Group, // 组图层
Tile, // 瓦片服务图层
MapImage, // 地图服务图层
IGSTile, // IGServer瓦片服务图层
IGSMapImage, // IGServer地图服务图层
IGSVector, // IGServer矢量服务图层
OGCWMTS, // OGCWMTS服务图层
OGCWMS, // OGCWMS服务图层
OGCWFS, // OGCWFS服务图层
ArcGISTile, // ArcGIS瓦片服务图层
ArcGISMapImage, // ArcGIS地图服务图层
VectorTile, // 矢量瓦片图层
WebTile, // 互联网服务图层
CustomTile, // 自定义瓦片服务图层
CustomMapImageLayer, // 自定义地图服务图层
AMapMercatorEMap, // 高德电子地图
AMapMercatorSatelliteMap, // 高德卫星影像图层
AMapMercatorSatelliteAnnMap // 高德卫星影像图注记图层
ModelCache, // 三维模型缓存图层,用于显示三维模型缓存。如:m3d(中地定义的模型缓存格式),osgb(osgb格式的倾斜摄影模型)、3dTileset(cesium标准的模型缓存)
Elevation, // 高程图层,用于接入地形服务
IGSElevation, // IGS高程图层,用于接入IGS三维服务中的地形服务
Scene, // IGS场景图层,用于对接IGS的三维场景服务
IGSScene, // IGS场景图层,用于对接IGS的三维场景服务
Graphics, // 覆盖物(临时绘制)图层
DataFlow, // 数据流
EsGeoCode, // 地理编码
Feature, // 要素图层
IGSFeature, // IGServer要素图层
GeoJson, // geoJson图层
IGSPanoramic, // IGS全景图层
STKTerrain, // STK图层
Plot, // 标绘图层
KML, // KML
KMZ, // KMZ
CZML, // CZML
OSM, // OSM
IGSVector3D, // IGServer三维简单要素类图层
NOSPATIALDATA // 非空间数据
}
// 缓冲区分析渲染方式
export enum RenderType {
Unknown, // 未知
CLIENT, // 客户端,指直接在前端绘制
SERVER // 服务端,指通过IGS服务生成图层服务
}