a1c1aa6f800667eeb3b640e4b8f132ada3468de0.svn-base 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import axios from 'axios'
  2. import {queryLayer} from '../config/lyrConfig.js'
  3. import {mapConfig} from '../config/mapConfig'
  4. export function xzqChange(_self,mapObject,item,fullExtent){
  5. var ol = _self.$ol;
  6. var url;
  7. var flag = true;
  8. mapObject.getLayers().forEach((val)=>{
  9. if(val){
  10. if(val.getProperties().id == "xzqGraphicLayer"){
  11. mapObject.removeLayer(val);
  12. return;
  13. }
  14. }
  15. })
  16. if(item.adCode.substring(0,2)=="66"){
  17. var adCode = "650000000000"
  18. flag = false;
  19. url = queryLayer.province + "/query?f=json&outFields=prov_cd,prov_nm&spatialRel=esriSpatialRelIntersects&where=prov_cd = '"+adCode+"'";
  20. }
  21. if(item.adName == '全国' && flag){//全国
  22. var view = new ol.View({
  23. // center:ol.proj.transform([103.3, 35.5], "EPSG:4326", "EPSG:3857"),
  24. center:_self.center,
  25. zoom:5
  26. });
  27. mapObject.setView(view);
  28. return;
  29. }else if(item.adGrad == '2' && flag){//省
  30. url = queryLayer.province + "/query?f=json&outFields=prov_cd,prov_nm&spatialRel=esriSpatialRelIntersects&where=prov_cd = '"+item.adCode+"'";
  31. }else if(item.adGrad == '3' && flag){//市
  32. url = queryLayer.city + "/query?f=json&outFields=dist_cd,dist_nm&spatialRel=esriSpatialRelIntersects&where=dist_cd = '"+item.adCode+"'";
  33. }else if(item.adGrad == '4' && flag){//县
  34. url = queryLayer.country + "/query?f=json&outFields=cnty_nm,cnty_cd&spatialRel=esriSpatialRelIntersects&where=cnty_cd = '"+item.adCode+"'";
  35. }
  36. if(url){
  37. axios.get(url).then((res)=>{
  38. var rings = res.data.features[0].geometry.rings;
  39. var polygon = _self.projTransform(new ol.geom.Polygon(rings),mapConfig.wkid);
  40. // if(mapConfig.wkid == ('102100' || '3857')){
  41. // polygon = (new ol.geom.Polygon(rings)).transform('EPSG:4326',"EPSG:3857");
  42. // }else{
  43. //var polygon = new ol.geom.Polygon(rings).transform('EPSG:4490',"EPSG:4490");
  44. // }
  45. var polygonFeature = new ol.Feature({
  46. geometry:polygon
  47. });
  48. var polygonStyle = new ol.style.Style({
  49. stroke: new ol.style.Stroke({
  50. color: '#f02ee7',
  51. lineDash: [10],
  52. width: 3
  53. }),
  54. // fill: new ol.style.Fill({
  55. // color: 'rgba(0, 0, 255, 1)'
  56. // })
  57. });
  58. polygonFeature.setStyle(polygonStyle);
  59. var vectorSource = new ol.source.Vector({
  60. features: [polygonFeature]
  61. });
  62. var vectorLayer = new ol.layer.Vector({
  63. source: vectorSource,
  64. id:'xzqGraphicLayer'
  65. });
  66. if(localStorage.getItem('currentRlcode')!="330000000000"){
  67. mapObject.getView().fit(polygonFeature.getGeometry().getExtent());
  68. }
  69. // mapObject.getView().animate({zoom: 8});
  70. var layersArray = _self.mapObject.getLayers();
  71. layersArray.insertAt(layersArray.N.length/3==1?1:layersArray.N.length/3+2,vectorLayer);
  72. mapObject.addLayer(vectorLayer);
  73. })
  74. }
  75. }