import * as mars3d from "mars3d"
|
|
export let map // mars3d.Map三维地图对象
|
|
// 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并)
|
export const mapOptions = {
|
scene: {
|
center: { lat: 31.841977, lng: 117.141788, alt: 1043, heading: 90, pitch: -51 },
|
fxaa: true,
|
baseLayerPicker: false,
|
sceneModePicker: false
|
},
|
layers: [
|
{
|
type: "geojson",
|
name: "示例数据",
|
url: "//data.mars3d.cn/file/geojson/mars3d-draw.json",
|
popup: "{type} {name}",
|
show: true
|
},
|
{
|
type: "3dtiles",
|
name: "测试模型",
|
url: "//data.mars3d.cn/3dtiles/bim-daxue/tileset.json",
|
position: { lng: 116.313536, lat: 31.217297, alt: 80 },
|
scale: 100,
|
show: true
|
}
|
]
|
}
|
|
/**
|
* 初始化地图业务,生命周期钩子函数(必须)
|
* 框架在地图初始化完成后自动调用该函数
|
* @param {mars3d.Map} mapInstance 地图对象
|
* @returns {void} 无
|
*/
|
export function onMounted(mapInstance) {
|
map = mapInstance // 记录map
|
|
// 修改3d地图的样式
|
const dom3d = document.getElementById("centerDiv3D")
|
dom3d.style.left = "50%"
|
dom3d.style.width = "50%"
|
|
// 创建2d地图
|
const mapDiv = mars3d.DomUtil.create("div", "", document.body)
|
mapDiv.setAttribute("id", "centerDiv2D")
|
mapDiv.style.width = "50%"
|
|
const map2ds = mars3d.DomUtil.create("div", "", mapDiv)
|
map2ds.setAttribute("id", "map2d")
|
map2ds.setAttribute("class", "mars2d-container")
|
|
const tileWorldImagery = new ol.layer.Tile({
|
source: new ol.source.XYZ({
|
url: "https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
|
crossOrigin: "Anonymous"
|
})
|
})
|
|
const map2d = new ol.Map({
|
target: "map2d",
|
projection: "EPSG:3857",
|
layers: [tileWorldImagery],
|
|
view: new ol.View({
|
center: ol.proj.fromLonLat([134.364805, 26.710497]),
|
zoom: 4,
|
minZoom: 2
|
})
|
})
|
|
// 联动控制器
|
const ol3d = new olcs.OLCesium({ map: map2d, viewer: map.viewer })
|
}
|
|
/**
|
* 释放当前地图业务的生命周期函数
|
* @returns {void} 无
|
*/
|
export function onUnmounted() {
|
map = null
|
}
|