import * as mars3d from "mars3d"
export let map // mars3d.Map三维地图对象
// 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并)
export const mapOptions = {
scene: {
center: { lat: 31.838348, lng: 117.206494, alt: 752, heading: 359, pitch: -54 }
}
}
/**
* 初始化地图业务,生命周期钩子函数(必须)
* 框架在地图初始化完成后自动调用该函数
* @param {mars3d.Map} mapInstance 地图对象
* @returns {void} 无
*/
export function onMounted(mapInstance) {
map = mapInstance // 记录map
// 三维模型【目前没有全合肥的模型,下面模型为了测试下】
const tilesetLayer = new mars3d.layer.TilesetLayer({
type: "3dtiles",
name: "合肥国家大学科技园",
url: "//data.mars3d.cn/3dtiles/qx-hfdxy/tileset.json",
position: { alt: -24 },
maximumScreenSpaceError: 1,
maximumMemoryUsage: 1024,
show: true
})
map.addLayer(tilesetLayer)
map.on(mars3d.EventType.load, () => {
addWfsLayer()
})
}
/**
* 释放当前地图业务的生命周期函数
* @returns {void} 无
*/
export function onUnmounted() {
map = null
}
function addWfsLayer() {
// 单体化图层【支持geoserver的wfs服务配置dth属性】
const wfsLayer = new mars3d.layer.WfsLayer({
name: "建筑物面",
url: "//server.mars3d.cn/geoserver/mars/wfs",
layer: "mars:hfjzw",
parameters: {
// 支持所有wfs的参数
maxFeatures: 500
},
minimumLevel: 15,
debuggerTileInfo: false,
popup: "名称:{NAME}
层数:{floor}",
symbol: {
type: "polygonP",
styleOptions: {
// 单体化默认显示样式
color: "rgba(255, 255, 255, 0.01)",
clampToGround: true,
classification: true,
buffer: 2,
// 单体化鼠标移入或单击后高亮的样式
highlight: {
// type: mars3d.EventType.click,
color: "rgba(255,255,0,0.4)"
}
}
},
show: true
})
map.addLayer(wfsLayer)
// 单体化图层【也支持arcgis的wfs服务配置dth属性】
// let wfsLayer = new mars3d.layer.ArcGisWfsLayer({
// name: "建筑物面矢量图层",
// url: "//server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37",
// minimumLevel: 15,
// debuggerTileInfo: false,
// popup: "名称:{NAME}
层数:{floor}",
// symbol: {
// type: "polygonP",
// styleOptions: {
// // 单体化默认显示样式
// color: "rgba(255, 255, 255, 0.01)",
// clampToGround: true,
// classification: true,
// // 单体化鼠标移入或单击后高亮的样式
// highlight: {
// // type: mars3d.EventType.click,
// color: "rgba(255,255,0,0.4)"
// }
// }
// }
// })
// map.addLayer(wfsLayer)
}