core/layers/BaseLayer.js

  1. import { Cesium } from '../../../namespace'
  2. import { getGoogleOption, getTdtOption } from '../../utils/layers/ImageryOption'
  3. /**
  4. * 基础图层类
  5. * @class
  6. */
  7. class BaseLayer {
  8. /**
  9. * 构造函数
  10. */
  11. constructor() {}
  12. /**
  13. * 默认单片图
  14. * @readonly
  15. * @type {Object}
  16. */
  17. get DefaultSingleImg() {
  18. const img = require('../../../resources/globe.jpg')
  19. const layer = Cesium.ImageryLayer.fromProviderAsync(
  20. Cesium.SingleTileImageryProvider.fromUrl(img)
  21. )
  22. return layer
  23. }
  24. /**
  25. * 默认arcgis底图
  26. * @readonly
  27. * @type {Object}
  28. */
  29. get DefaultArcgisImg() {
  30. return Cesium.ImageryLayer.fromProviderAsync(
  31. Cesium.ArcGisMapServerImageryProvider.fromUrl(
  32. 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
  33. )
  34. )
  35. }
  36. /**
  37. * 默认谷歌影像地图
  38. * @readonly
  39. * @type {Object}
  40. */
  41. get DefaultGoogleVec() {
  42. const option = getGoogleOption()
  43. return Cesium.ImageryLayer.fromProviderAsync(
  44. new Cesium.UrlTemplateImageryProvider(option)
  45. )
  46. }
  47. /**
  48. * 默认天地图影像地图
  49. * @readonly
  50. * @type {Object}
  51. */
  52. get DefaultTdtImg() {
  53. const option = getTdtOption('img')
  54. return Cesium.ImageryLayer.fromProviderAsync(
  55. new Cesium.WebMapTileServiceImageryProvider(option)
  56. )
  57. }
  58. /**
  59. * 默认天地图矢量地图
  60. * @readonly
  61. * @type {Object}
  62. */
  63. get DefaultTdtVec() {
  64. const option = getTdtOption('vec')
  65. return Cesium.ImageryLayer.fromProviderAsync(
  66. new Cesium.WebMapTileServiceImageryProvider(option)
  67. )
  68. }
  69. /**
  70. * 默认全球地形
  71. * @readonly
  72. * @type {Object}
  73. */
  74. get DefaultTerrain() {
  75. const terrainProvider = Cesium.createWorldTerrainAsync({
  76. requestWaterMask: true,
  77. requestVertexNormals: true,
  78. })
  79. return new Cesium.Terrain(terrainProvider)
  80. }
  81. /**
  82. * 获取tms格式地形
  83. * @param {String} url - 地形文件路径,如:http://localhost:80/terrain/
  84. * @returns tms格式地形对象
  85. */
  86. getTerrain(url) {
  87. return new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromUrl(url))
  88. }
  89. }
  90. export default BaseLayer