import * as mars3d from "mars3d" import FloorGraphic from "./FloorGraphic" export let map // mars3d.Map三维地图对象 let floorGraphic // 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并) export const mapOptions = { scene: { center: { lat: 31.832215, lng: 117.219965, alt: 195, heading: 31, pitch: -36 } } } /** * 初始化地图业务,生命周期钩子函数(必须) * 框架在地图初始化完成后自动调用该函数 * @param {mars3d.Map} mapInstance 地图对象 * @returns {void} 无 */ export function onMounted(mapInstance) { map = mapInstance // 记录map // 创建矢量数据图层 const graphicLayer = new mars3d.layer.GraphicLayer() map.addLayer(graphicLayer) // 该对象代码定义在:js/FloorGraphic.js floorGraphic = new FloorGraphic({ position: [117.220897, 31.833569, 41.1], // 楼栋位置 style: { url: "//data.mars3d.cn/gltf/mars/floor/floor.glb", heading: 100, topUrl: "//data.mars3d.cn/gltf/mars/floor/top.glb", // 楼顶的模型 count: 9, // 总层数(不含楼顶) spacing: 3 // 每层层高,单位:米 } }) graphicLayer.addGraphic(floorGraphic) } /** * 释放当前地图业务的生命周期函数 * @returns {void} 无 */ export function onUnmounted() { map = null } // 展开 export function openFloorModel() { const height = 5 // 展开的每层间隔高度,单位:米 floorGraphic.openAll(height) } // 合并 export function mergeFloorModel() { floorGraphic.mergeAll() } // 还原 export function resetModel() { floorGraphic.reset() } // 楼层显示 export function showFloorModel(floorNum) { floorGraphic.showFloor(floorNum) }