You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ImageryLayerFactory.js 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. /**
  2. * @Author: Caven
  3. * @Date: 2020-01-21 15:54:56
  4. */
  5. import { Cesium } from '@dc-modules/namespace'
  6. import ImageryType from './ImageryType'
  7. import AmapImageryProvider from './provider/AmapImageryProvider'
  8. import BaiduImageryProvider from './provider/BaiduImageryProvider'
  9. import GoogleImageryProvider from './provider/GoogleImageryProvider'
  10. import TdtImageryProvider from './provider/TdtImageryProvider'
  11. import TencentImageryProvider from './provider/TencentImageryProvider'
  12. class ImageryLayerFactory {
  13. /**
  14. * Create amap image layer
  15. * @param options
  16. * @returns {AmapImageryProvider}
  17. */
  18. static createAmapImageryLayer(options) {
  19. return new AmapImageryProvider(options)
  20. }
  21. /**
  22. * Create baidu image layer
  23. * @param options
  24. * @returns {BaiduImageryProvider}
  25. */
  26. static createBaiduImageryLayer(options) {
  27. return new BaiduImageryProvider(options)
  28. }
  29. /**
  30. * Create google image layer
  31. * @param options
  32. * @returns {GoogleImageryProvider}
  33. */
  34. static createGoogleImageryLayer(options) {
  35. return new GoogleImageryProvider(options)
  36. }
  37. /**
  38. * Create tdt image layer
  39. * @param options
  40. * @returns {TdtImageryProvider}
  41. */
  42. static createTdtImageryLayer(options) {
  43. return new TdtImageryProvider(options)
  44. }
  45. /**
  46. * Create tencent image layer
  47. * @param options
  48. * @returns {TencentImageryProvider}
  49. */
  50. static createTencentImageryLayer(options) {
  51. return new TencentImageryProvider(options)
  52. }
  53. /**
  54. * Create arcgis image layer
  55. * @param options
  56. * @returns {module:cesium.ArcGisMapServerImageryProvider}
  57. */
  58. static createArcGisImageryLayer(options) {
  59. return new Cesium.ArcGisMapServerImageryProvider(options)
  60. }
  61. /**
  62. * Create single tile image layer
  63. * @param options
  64. * @returns {module:cesium.SingleTileImageryProvider}
  65. */
  66. static createSingleTileImageryLayer(options) {
  67. return new Cesium.SingleTileImageryProvider(options)
  68. }
  69. /**
  70. * Create WMS image layer
  71. * @param options
  72. * @returns {module:cesium.WebMapServiceImageryProvider}
  73. */
  74. static createWMSImageryLayer(options) {
  75. return new Cesium.WebMapServiceImageryProvider(options)
  76. }
  77. /**
  78. * Create WMTS image layer
  79. * @param options
  80. * @returns {module:cesium.WebMapTileServiceImageryProvider}
  81. */
  82. static createWMTSImageryLayer(options) {
  83. return new Cesium.WebMapTileServiceImageryProvider(options)
  84. }
  85. /**
  86. * Create xyz image layer
  87. * @param options
  88. * @returns {module:cesium.UrlTemplateImageryProvider}
  89. */
  90. static createXYZImageryLayer(options) {
  91. return new Cesium.UrlTemplateImageryProvider(options)
  92. }
  93. /**
  94. * Create coord image layer
  95. * @param options
  96. * @returns {module:cesium.TileCoordinatesImageryProvider}
  97. */
  98. static createCoordImageryLayer(options) {
  99. return new Cesium.TileCoordinatesImageryProvider(options)
  100. }
  101. /**
  102. * Create grid image layer
  103. * @param options
  104. * @returns {module:cesium.GridImageryProvider}
  105. */
  106. static createGridImageryLayer(options) {
  107. return new Cesium.GridImageryProvider(options)
  108. }
  109. /**
  110. * Create mapbox image layer
  111. * @param options
  112. * @returns {module:cesium.MapboxImageryProvider}
  113. */
  114. static createMapboxImageryLayer(options) {
  115. return new Cesium.MapboxImageryProvider(options)
  116. }
  117. /**
  118. * Create mapbox style image layer
  119. * @param options
  120. * @returns {module:cesium.MapboxStyleImageryProvider}
  121. */
  122. static createMapboxStyleImageryLayer(options) {
  123. return new Cesium.MapboxStyleImageryProvider(options)
  124. }
  125. /**
  126. * Create TMS image layer
  127. * @param options
  128. * @returns {module:cesium.TileMapServiceImageryProvider}
  129. */
  130. static createTMSImageryLayer(options) {
  131. return new Cesium.TileMapServiceImageryProvider(options)
  132. }
  133. /**
  134. * Create Imagery Layer
  135. * @param type
  136. * @param options
  137. * @returns {any}
  138. */
  139. static createImageryLayer(type, options) {
  140. let imageryLayer = undefined
  141. switch (type) {
  142. case ImageryType.AMAP:
  143. imageryLayer = this.createAmapImageryLayer(options)
  144. break
  145. case ImageryType.BAIDU:
  146. imageryLayer = this.createBaiduImageryLayer(options)
  147. break
  148. case ImageryType.GOOGLE:
  149. imageryLayer = this.createGoogleImageryLayer(options)
  150. break
  151. case ImageryType.TDT:
  152. imageryLayer = this.createTdtImageryLayer(options)
  153. break
  154. case ImageryType.TENCENT:
  155. imageryLayer = this.createTencentImageryLayer(options)
  156. break
  157. case ImageryType.ARCGIS:
  158. imageryLayer = this.createArcGisImageryLayer(options)
  159. break
  160. case ImageryType.SINGLE_TILE:
  161. imageryLayer = this.createSingleTileImageryLayer(options)
  162. break
  163. case ImageryType.WMS:
  164. imageryLayer = this.createWMSImageryLayer(options)
  165. break
  166. case ImageryType.WMTS:
  167. imageryLayer = this.createWMTSImageryLayer(options)
  168. break
  169. case ImageryType.XYZ:
  170. imageryLayer = this.createXYZImageryLayer(options)
  171. break
  172. case ImageryType.COORD:
  173. imageryLayer = this.createCoordImageryLayer(options)
  174. break
  175. case ImageryType.GRID:
  176. imageryLayer = this.createGridImageryLayer(options)
  177. break
  178. case ImageryType.MAPBOX:
  179. imageryLayer = this.createMapboxImageryLayer(options)
  180. break
  181. case ImageryType.MAPBOX_STYLE:
  182. imageryLayer = this.createMapboxStyleImageryLayer(options)
  183. break
  184. case ImageryType.TMS:
  185. imageryLayer = this.createTMSImageryLayer(options)
  186. break
  187. default:
  188. break
  189. }
  190. return imageryLayer
  191. }
  192. }
  193. export default ImageryLayerFactory