DSDSWeb/src/utils/common.js

83 lines
3.4 KiB
JavaScript

import { getParamsList } from '../api/home'
export function modifyCesiumMouseWheel(viewer) {
// 地图缩放改为按下 Ctrl + 鼠标滚轮
viewer.scene.screenSpaceCameraController.zoomEventTypes = [{ eventType: Cesium.CameraEventType.WHEEL, modifier: Cesium.KeyboardEventModifier.CTRL }];
// 改写 Cesium 原生鼠标滚轮事件
const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction((event) => {
if (event < 0) {
window.scrollBy({ left: 0, top: 15, behavior: 'auto' });
} else {
window.scrollBy({ left: 0, top: -15, behavior: 'auto' });
}
}, Cesium.ScreenSpaceEventType.WHEEL);
// 鼠标移动时显示提示信息
handler.setInputAction((event) => {
document.getElementById('mouseWheelTip').style.display = '';
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
}
let imageryViewModels = [];
export function setImageryViewModels(cesiumHostAddr) {
if (imageryViewModels.length == 0) {
// 世界影像地图
const world_imagery = new Cesium.WebMapTileServiceImageryProvider(
{
url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
// url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
// url: 'https://services.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer'
}
);
// 彩色地形底图
const colorMap = new Cesium.WebMapTileServiceImageryProvider(
{
url: cesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:world/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
layer: 'ougp:world',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'EPSG:4326',
tilingScheme: new Cesium.GeographicTilingScheme()
}
);
// 灰度地形底图
const grayMap = new Cesium.WebMapTileServiceImageryProvider(
{
url: cesiumHostAddr + 'geoserver/gwc/service/wmts/rest/ougp:world_gray/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
layer: 'ougp:world_gray',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'EPSG:4326',
tilingScheme: new Cesium.GeographicTilingScheme()
}
);
// 自定义底图
imageryViewModels.push(new Cesium.ProviderViewModel({
name: "世界影像地图",
iconUrl: "static/images/world_imagery.png",
tooltip: "世界影像地图",
creationFunction: function () {
return world_imagery;
}
}));
imageryViewModels.push(new Cesium.ProviderViewModel({
name: "地形地图",
iconUrl: "static/images/world_color.png",
tooltip: "彩色地形底图",
creationFunction: function () {
return colorMap;
}
}));
imageryViewModels.push(new Cesium.ProviderViewModel({
name: "灰度地图",
iconUrl: "static/images/world_gray.png",
tooltip: "灰度地形底图",
creationFunction: function () {
return grayMap;
}
}));
}
return imageryViewModels;
}