StaticImgLayer.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import LTBaseObject from './KBaseObject'
  2. import Common from './Common'
  3. import Static from "ol/source/ImageStatic";
  4. import ImageLayer from "ol/layer/Image";
  5. /**
  6. * @description LTMap.GeoJsonLayer GeoJsonLayer图层类
  7. */
  8. class StaticImgLayer extends LTBaseObject{
  9. /**
  10. * @description 构造函数
  11. * @param {String} url XYZ图层服务地址
  12. * @param {LTMap.Map} [mapInstance=null] map对象,单地图的时候可不传,多地图时候需要传
  13. * @memberof XYZLayer
  14. */
  15. constructor(url,options,zIndex,mapInstance = null){
  16. super(mapInstance)
  17. const vm = this
  18. vm.initStaticImgLayer(url,options,zIndex)
  19. }
  20. /**
  21. * @description 初始化静态图片图层
  22. */
  23. initStaticImgLayer(url,options,zIndex){
  24. var minZoom = Common.BaseLayerZoom[0];
  25. var maxZoom = Common.BaseLayerZoom[1];
  26. let opacity = 1;
  27. if(options && options.opacity != undefined){
  28. opacity = options.opacity
  29. }
  30. if(options && options.minZoom != undefined){
  31. minZoom = options.minZoom
  32. }
  33. if(options && options.maxZoom != undefined){
  34. maxZoom = options.maxZoom
  35. }
  36. if(options && options.zIndex != undefined){
  37. zIndex = options.zIndex
  38. }
  39. const vm = this
  40. vm.source = new Static({
  41. url,
  42. projection: 'EPSG:4326',
  43. imageExtent: options.extent,
  44. });
  45. vm.layer = new ImageLayer({
  46. source:vm.source,
  47. maxZoom:maxZoom,
  48. minZoom:minZoom,
  49. opacity:opacity,
  50. zIndex:zIndex,
  51. extent:options.extent || [Infinity, -Infinity, -Infinity, Infinity]
  52. })
  53. if(options && options.padding != undefined){
  54. vm.layer.set('padding',options.padding)
  55. }
  56. vm.map.addLayer(vm.layer)
  57. }
  58. setProperty(properties){
  59. const vm = this;
  60. vm.properties = properties;
  61. }
  62. getProperty(){
  63. const vm = this;
  64. return vm.properties?vm.properties:null;
  65. }
  66. /**
  67. * @description 添加XYZ图层到地图
  68. * @memberof XYZLayer
  69. */
  70. add(){
  71. const vm = this
  72. if(!vm.state) {
  73. vm.map.addLayer(vm.layer)
  74. vm.state = true
  75. }
  76. }
  77. /**
  78. * @description 从当前地图中移除XYZ图层
  79. * @memberof XYZLayer
  80. */
  81. remove() {
  82. const vm = this
  83. if(vm.state) {
  84. vm.map.removeLayer(vm.layer)
  85. vm.state = false
  86. }
  87. }
  88. /**
  89. * @description 显示XYZ图层数据
  90. * @memberof XYZLayer
  91. */
  92. show(){
  93. const vm = this
  94. vm.layer.setVisible(true)
  95. }
  96. /**
  97. * @description 隐藏XYZ图层数据
  98. * @memberof XYZLayer
  99. */
  100. hide(){
  101. const vm = this
  102. vm.layer.setVisible(false)
  103. }
  104. /**
  105. * @description 缩放到过滤后的地图要素对应范围
  106. * @memberof XYZLayer
  107. */
  108. zoomTo() {
  109. const vm = this
  110. }
  111. }
  112. export default StaticImgLayer