7337cfd6fdbdc4e475413120dbf7c7de82463e33.svn-base 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. import axios from 'axios'
  2. import {_longLatTransform} from './mercatorToLngLat'
  3. import { mapConfig } from '../config/mapConfig.js';
  4. let cancelRequest;
  5. var cancelToken = new axios.CancelToken(function executor(c) {
  6. cancelRequest = c
  7. console.log(c)
  8. // 这个参数 c 就是CancelToken构造函数里面自带的取消请求的函数,这里把该函数当参数用
  9. });
  10. var gateFlow = '';
  11. var gateFlowWidthZoom = [
  12. {
  13. zoom:0,
  14. gateFlow:1000,
  15. },{
  16. zoom:1,
  17. gateFlow:1000,
  18. },{
  19. zoom:2,
  20. gateFlow:1000,
  21. },{
  22. zoom:3,
  23. gateFlow:1000,
  24. },{
  25. zoom:4,
  26. gateFlow:700,
  27. },{
  28. zoom:5,
  29. gateFlow:700,
  30. },{
  31. zoom:6,
  32. gateFlow:400,
  33. },{
  34. zoom:7,
  35. gateFlow:400,
  36. },{
  37. zoom:8,
  38. gateFlow:200,
  39. },{
  40. zoom:9,
  41. gateFlow:200,
  42. },{
  43. zoom:10,
  44. gateFlow:100,
  45. },{
  46. zoom:11,
  47. gateFlow:100,
  48. },{
  49. zoom:12,
  50. gateFlow:'',
  51. },{
  52. zoom:13,
  53. gateFlow:'',
  54. },{
  55. zoom:14,
  56. gateFlow:'',
  57. },{
  58. zoom:15,
  59. gateFlow:'',
  60. },{
  61. zoom:16,
  62. gateFlow:'',
  63. },{
  64. zoom:17,
  65. gateFlow:'',
  66. },{
  67. zoom:18,
  68. gateFlow:'',
  69. }
  70. ]
  71. import {getShgcListForMap,getAllSZList} from '../../../api/zhxxAPI.js'
  72. import {removeLayerById,getShowOrFalse} from './removeLayerById.js'
  73. export function getSzList(_self){
  74. var ol = _self.$ol;
  75. removeLayerById(_self,'szGraphicLayer');
  76. gateFlowWidthZoom.forEach((item)=>{
  77. if(item.zoom == _self.mapObject.getView().getZoom()){
  78. // gateFlow = item.gateFlow;
  79. }
  80. });
  81. var symbol = new ol.style.Style({//未督查
  82. image: new ol.style.Icon(({
  83. anchor: [0.5, 0.5],
  84. scale:0.4,
  85. src: '/src/views/zongHeXinXiOl/assets/sz.png'
  86. }))
  87. });
  88. var maxLgtd = _self.mapObject.getView().calculateExtent()[2];
  89. var maxLttd = _self.mapObject.getView().calculateExtent()[3];
  90. var minLgtd = _self.mapObject.getView().calculateExtent()[0];
  91. var minLttd = _self.mapObject.getView().calculateExtent()[1];
  92. var bottomLeft = _longLatTransform({
  93. x:minLgtd,
  94. y:minLttd
  95. })
  96. var topRight = _longLatTransform({
  97. x:maxLgtd,
  98. y:maxLttd
  99. })
  100. var maxLgtd1 = topRight.x;
  101. var maxLttd1 = topRight.y;
  102. var minLgtd1 = bottomLeft.x;
  103. var minLttd1 = bottomLeft.y;
  104. cancelRequest;
  105. var iconFeature,vectorSource,vectorLayer;
  106. var features = [];
  107. getShgcListForMap(_self.userId,'6',_self.currentAdCode,'','','','','').then((res)=>{
  108. if(res.data){
  109. res.data.forEach((item)=>{
  110. if(item.centerX && item.centerY){
  111. // var pt = ol.proj.transform([item.centerX, item.centerY], "EPSG:4326", "EPSG:3857")
  112. var pt = _self.projTransform(new ol.geom.Point([Number(item.centerX), Number(item.centerY)]),mapConfig.wkid)
  113. iconFeature = new ol.Feature({
  114. geometry: pt,
  115. name: '督查水闸'
  116. });
  117. item['layerId'] = 'szGraphicLayer';
  118. iconFeature.setProperties(item);
  119. iconFeature.setStyle(symbol);
  120. features.push(iconFeature)
  121. }
  122. });
  123. vectorSource = new ol.source.Vector({
  124. features: features
  125. });
  126. vectorLayer = new ol.layer.Vector({
  127. source: vectorSource,
  128. id:'szGraphicLayer',
  129. visible:true
  130. });
  131. _self.mapObject.addLayer(vectorLayer)
  132. }
  133. })
  134. }
  135. export function getAllSzList(_self,type){
  136. var ol = _self.$ol;
  137. var show0 = true;
  138. var show1 = true;
  139. var show2 = true;
  140. if(type==1){
  141. show0 = getShowOrFalse(_self,"szGraphicLayerAll0");
  142. show1 = getShowOrFalse(_self,"szGraphicLayerAll1");
  143. show2 = getShowOrFalse(_self,"szGraphicLayerAll2");
  144. }
  145. removeLayerById(_self,'szGraphicLayerAll0');
  146. removeLayerById(_self,'szGraphicLayerAll1');
  147. removeLayerById(_self,'szGraphicLayerAll2');
  148. gateFlowWidthZoom.forEach((item)=>{
  149. if(item.zoom == _self.mapObject.getView().getZoom()){
  150. gateFlow = item.gateFlow;
  151. }
  152. });
  153. var maxLgtd = _self.mapObject.getView().calculateExtent()[2];
  154. var maxLttd = _self.mapObject.getView().calculateExtent()[3];
  155. var minLgtd = _self.mapObject.getView().calculateExtent()[0];
  156. var minLttd = _self.mapObject.getView().calculateExtent()[1];
  157. var bottomLeft = _longLatTransform({
  158. x:minLgtd,
  159. y:minLttd
  160. })
  161. var topRight = _longLatTransform({
  162. x:maxLgtd,
  163. y:maxLttd
  164. })
  165. var maxLgtd1 = topRight.x;
  166. var maxLttd1 = topRight.y;
  167. var minLgtd1 = bottomLeft.x;
  168. var minLttd1 = bottomLeft.y;
  169. var displayLevel = _self.mapObject.getView().getZoom()-3;
  170. var iconFeature,vectorSource,vectorLayer,vectorSource1,vectorLayer1,vectorSource2,vectorLayer2;
  171. var features = [];
  172. var features1 = [];
  173. var features2 = [];
  174. cancelRequest;
  175. getAllSZList(_self.currentAdCode,maxLgtd1,maxLttd1,minLgtd1,minLttd1,gateFlow,displayLevel).then((res)=>{
  176. if(res.data){
  177. res.data.forEach((item)=>{
  178. if(item.centerX && item.centerY){
  179. // var pt = ol.proj.transform([item.centerX, item.centerY], "EPSG:4326", "EPSG:3857")
  180. var pt = _self.projTransform(new ol.geom.Point([Number(item.centerX), Number(item.centerY)]),mapConfig.wkid)
  181. iconFeature = new ol.Feature({
  182. geometry: pt,
  183. name: '水闸'
  184. });
  185. item['layerId'] = 'szGraphicLayerAll';
  186. iconFeature.setProperties(item);
  187. var src = "";
  188. if(!item.state || item.state=="0"){
  189. src = "/src/views/zongHeXinXiOl/assets/sz_0.png";
  190. item['layerId'] = 'szGraphicLayerAll0';
  191. }
  192. if(item.state=="1"){
  193. src = "/src/views/zongHeXinXiOl/assets/sz.png";
  194. item['layerId'] = 'szGraphicLayerAll1';
  195. }
  196. if(item.state=="2"){
  197. src = "/src/views/zongHeXinXiOl/assets/sz_2.png";
  198. item['layerId'] = 'szGraphicLayerAll2';
  199. }
  200. var symbol = new ol.style.Style({
  201. image: new ol.style.Icon({
  202. anchor: [0.5, 0.5],
  203. scale:0.4,
  204. src: src
  205. }),
  206. text: new ol.style.Text({
  207. font: 'normal 14px 黑体',
  208. // // 对其方式
  209. textAlign: 'center',
  210. // 基准线
  211. textBaseline: 'middle',
  212. offsetY: -15,
  213. offsetX: 0,
  214. fill: new ol.style.Fill({
  215. color: 'white'
  216. }),
  217. stroke: new ol.style.Stroke({
  218. color: 'black',
  219. lineCap: 'butt',
  220. width: 4
  221. }),
  222. padding: [5, 5, 5, 5],
  223. text: item.gateName,
  224. })
  225. });
  226. iconFeature.setStyle(symbol);
  227. if(!item.state || item.state=="0"){
  228. features.push(iconFeature)
  229. }
  230. if(item.state=="1"){
  231. features1.push(iconFeature)
  232. }
  233. if(item.state=="2"){
  234. features2.push(iconFeature)
  235. }
  236. }
  237. });
  238. vectorSource = new ol.source.Vector({
  239. features: features
  240. });
  241. vectorLayer = new ol.layer.Vector({
  242. source: vectorSource,
  243. id:'szGraphicLayerAll0',
  244. visible:show0
  245. });
  246. vectorSource1 = new ol.source.Vector({
  247. features: features1
  248. });
  249. vectorLayer1 = new ol.layer.Vector({
  250. source: vectorSource1,
  251. id:'szGraphicLayerAll1',
  252. visible:show1
  253. });
  254. vectorSource2 = new ol.source.Vector({
  255. features: features2
  256. });
  257. vectorLayer2 = new ol.layer.Vector({
  258. source: vectorSource2,
  259. id:'szGraphicLayerAll2',
  260. visible:show2
  261. });
  262. _self.mapObject.addLayer(vectorLayer)
  263. _self.mapObject.addLayer(vectorLayer1)
  264. _self.mapObject.addLayer(vectorLayer2)
  265. }
  266. })
  267. }