import * as mars3d from "mars3d"
|
|
export let map // mars3d.Map三维地图对象
|
|
// 需要覆盖config.json中地图属性参数(当前示例框架中自动处理合并)
|
export const mapOptions = function (option) {
|
option.control = {
|
baseLayerPicker: true // 是否显示图层选择控件
|
}
|
return option
|
}
|
|
/**
|
* 初始化地图业务,生命周期钩子函数(必须)
|
* 框架在地图初始化完成后自动调用该函数
|
* @param {mars3d.Map} mapInstance 地图对象
|
* @returns {void} 无
|
*/
|
export function onMounted(mapInstance) {
|
map = mapInstance // 记录map
|
}
|
|
/**
|
* 释放当前地图业务的生命周期函数
|
* @returns {void} 无
|
*/
|
export function onUnmounted() {
|
map = null
|
}
|
|
// 获取自定义底图切换
|
function getImageryProviderArr() {
|
const providerViewModels = []
|
let imgModel
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "本地图片",
|
tooltip: "本地单张图片",
|
iconUrl: "img/basemaps/esriNationalGeographic.png",
|
category: "标准坐标系",
|
creationFunction: function () {
|
return mars3d.LayerUtil.createImageryProvider({
|
type: "image",
|
url: "//data.mars3d.cn/file/img/world/world.jpg"
|
})
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "天地图影像",
|
tooltip: "天地图全球影像地图服务(国家测绘局)",
|
iconUrl: "img/basemaps/tdt_img.png",
|
category: "标准坐标系",
|
creationFunction: function () {
|
return [
|
mars3d.LayerUtil.createImageryProvider({
|
type: "tdt",
|
layer: "img_d",
|
key: mars3d.Token.tiandituArr
|
}),
|
mars3d.LayerUtil.createImageryProvider({
|
type: "tdt",
|
layer: "img_z",
|
key: mars3d.Token.tiandituArr
|
})
|
]
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "Bing影像",
|
iconUrl: "img/basemaps/bingAerial.png",
|
tooltip: "微软提供的高清影像地图",
|
category: "标准坐标系",
|
creationFunction: function () {
|
return mars3d.LayerUtil.createImageryProvider({
|
type: "bing",
|
layer: "Aerial"
|
})
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "ESRI影像",
|
iconUrl: "img/basemaps/esriWorldImagery.png",
|
tooltip: "ESRI提供的高清影像地图",
|
category: "标准坐标系",
|
creationFunction: function () {
|
return mars3d.LayerUtil.createImageryProvider({
|
type: "arcgis",
|
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"
|
})
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "谷歌影像",
|
tooltip: "谷歌影像地图服务",
|
iconUrl: "img/basemaps/google_img.png",
|
category: "国测局偏移坐标系",
|
creationFunction: function () {
|
return [
|
mars3d.LayerUtil.createImageryProvider({ type: "google", layer: "img_d" }),
|
mars3d.LayerUtil.createImageryProvider({ type: "google", layer: "img_z" })
|
]
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
imgModel = new Cesium.ProviderViewModel({
|
name: "高德影像",
|
tooltip: "高德影像地图服务",
|
iconUrl: "img/basemaps/gaode_img.png",
|
category: "国测局偏移坐标系",
|
creationFunction: function () {
|
return [
|
mars3d.LayerUtil.createImageryProvider({ type: "gaode", layer: "img_d" }),
|
mars3d.LayerUtil.createImageryProvider({ type: "gaode", layer: "img_z" })
|
]
|
}
|
})
|
providerViewModels.push(imgModel)
|
|
return providerViewModels
|
}
|
|
function getTerrainProviderViewModelsArr() {
|
return [
|
new Cesium.ProviderViewModel({
|
name: "无地形",
|
tooltip: "WGS84标准球体",
|
iconUrl: "img/basemaps/TerrainEllipsoid.png",
|
creationFunction: function () {
|
return new Cesium.EllipsoidTerrainProvider({
|
ellipsoid: Cesium.Ellipsoid.WGS84
|
})
|
}
|
}),
|
new Cesium.ProviderViewModel({
|
name: "全球地形",
|
tooltip: "由 Cesium官方 提供的高分辨率全球地形",
|
iconUrl: "img/basemaps/TerrainSTK.png",
|
creationFunction: function () {
|
return Cesium.createWorldTerrain({
|
requestWaterMask: true,
|
requestVertexNormals: true
|
})
|
}
|
}),
|
new Cesium.ProviderViewModel({
|
name: "中国地形",
|
tooltip: "由 Mars3D 提供的中国国内地形",
|
iconUrl: "img/basemaps/TerrainSTK.png",
|
creationFunction: function () {
|
return new Cesium.CesiumTerrainProvider({
|
url: "http://data.mars3d.cn/terrain",
|
requestWaterMask: true,
|
requestVertexNormals: true
|
})
|
}
|
})
|
]
|
}
|