import * as mars3d from "mars3d"
|
|
export let map // mars3d.Map三维地图对象
|
|
/**
|
* 合并属性参数,可覆盖config.json中的对应配置
|
* @type {object}
|
*/
|
export const mapOptions = {
|
// 方式1:在创建地球前的传参中配置 terrain 参数[目前1个球只支持1个地形服务]
|
terrain: {
|
url: "http://data.mars3d.cn/terrain",
|
show: true
|
}
|
}
|
|
/**
|
* 初始化地图业务,生命周期钩子函数(必须)
|
* 框架在地图初始化完成后自动调用该函数
|
* @param {mars3d.Map} mapInstance 地图对象
|
* @returns {void} 无
|
*/
|
export function onMounted(mapInstance) {
|
map = mapInstance // 记录map
|
|
map.on(mars3d.EventType.terrainLoadSuccess, function (event) {
|
console.log("地形服务加载完成", event)
|
})
|
map.on(mars3d.EventType.terrainLoadError, function (event) {
|
console.log("地形服务加载失败", event)
|
})
|
|
// 方式2:在创建地球后更新terrainProvider(用 mars3d.layer.createTerrainProvider工厂方法创建)[目前1个球只支持1个地形服务]
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
url: "http://data.mars3d.cn/terrain"
|
})
|
}
|
|
/**
|
* 释放当前地图业务的生命周期函数
|
* @returns {void} 无
|
*/
|
export function onUnmounted() {
|
map = null
|
}
|
|
export function radioTerrain(type) {
|
switch (type) {
|
case "none": // 无地形
|
map.terrainProvider = mars3d.LayerUtil.getNoTerrainProvider()
|
break
|
case "xyz": // 标准xyz服务
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
url: "http://data.mars3d.cn/terrain"
|
})
|
break
|
case "arcgis": // ArcGIS地形服务
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
type: "arcgis",
|
url: "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
|
})
|
break
|
case "ion": // cesium官方ion在线服务
|
globalMsg("ION服务在国外,加载略慢,请耐心等候。")
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
type: "ion",
|
requestWaterMask: true,
|
requestVertexNormals: true
|
})
|
break
|
case "gee": // 谷歌地球企业服务
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
type: "gee",
|
url: "http://www.earthenterprise.org/3d",
|
proxy: "//server.mars3d.cn/proxy/"
|
})
|
break
|
case "vr": // vr地形服务
|
map.terrainProvider = mars3d.LayerUtil.createTerrainProvider({
|
type: "vr",
|
url: "https://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/"
|
})
|
break
|
default:
|
}
|
}
|
|
// 可以开启和关闭地形
|
export function enabledTerrain(val) {
|
map.hasTerrain = val
|
}
|
|
// 是否开启三角网
|
export function enabledTerrainSJW(val) {
|
map.scene.globe._surface.tileProvider._debug.wireframe = val
|
}
|