| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import axios from 'axios'
- import {queryLayer} from '../config/lyrConfig.js'
- import {mapConfig} from '../config/mapConfig'
- export function xzqChange(_self,mapObject,item,fullExtent){
- var ol = _self.$ol;
- var url;
- var flag = true;
- mapObject.getLayers().forEach((val)=>{
- if(val){
- if(val.getProperties().id == "xzqGraphicLayer"){
- mapObject.removeLayer(val);
- return;
- }
- }
- })
- if(item.adCode.substring(0,2)=="66"){
- var adCode = "650000000000"
- flag = false;
- url = queryLayer.province + "/query?f=json&outFields=prov_cd,prov_nm&spatialRel=esriSpatialRelIntersects&where=prov_cd = '"+adCode+"'";
- }
- if(item.adName == '全国' && flag){//全国
- var view = new ol.View({
- // center:ol.proj.transform([103.3, 35.5], "EPSG:4326", "EPSG:3857"),
- center:_self.center,
- zoom:5
- });
- mapObject.setView(view);
- return;
- }else if(item.adGrad == '2' && flag){//省
- url = queryLayer.province + "/query?f=json&outFields=prov_cd,prov_nm&spatialRel=esriSpatialRelIntersects&where=prov_cd = '"+item.adCode+"'";
- }else if(item.adGrad == '3' && flag){//市
- url = queryLayer.city + "/query?f=json&outFields=dist_cd,dist_nm&spatialRel=esriSpatialRelIntersects&where=dist_cd = '"+item.adCode+"'";
- }else if(item.adGrad == '4' && flag){//县
- url = queryLayer.country + "/query?f=json&outFields=cnty_nm,cnty_cd&spatialRel=esriSpatialRelIntersects&where=cnty_cd = '"+item.adCode+"'";
- }
- if(url){
- axios.get(url).then((res)=>{
- var rings = res.data.features[0].geometry.rings;
- var polygon = _self.projTransform(new ol.geom.Polygon(rings),mapConfig.wkid);
- // if(mapConfig.wkid == ('102100' || '3857')){
- // polygon = (new ol.geom.Polygon(rings)).transform('EPSG:4326',"EPSG:3857");
- // }else{
- //var polygon = new ol.geom.Polygon(rings).transform('EPSG:4490',"EPSG:4490");
- // }
- var polygonFeature = new ol.Feature({
- geometry:polygon
- });
- var polygonStyle = new ol.style.Style({
- stroke: new ol.style.Stroke({
- color: '#f02ee7',
- lineDash: [10],
- width: 3
- }),
- // fill: new ol.style.Fill({
- // color: 'rgba(0, 0, 255, 1)'
- // })
- });
- polygonFeature.setStyle(polygonStyle);
- var vectorSource = new ol.source.Vector({
- features: [polygonFeature]
- });
- var vectorLayer = new ol.layer.Vector({
- source: vectorSource,
- id:'xzqGraphicLayer'
- });
- if(localStorage.getItem('currentRlcode')!="330000000000"){
- mapObject.getView().fit(polygonFeature.getGeometry().getExtent());
- }
- // mapObject.getView().animate({zoom: 8});
- var layersArray = _self.mapObject.getLayers();
- layersArray.insertAt(layersArray.N.length/3==1?1:layersArray.N.length/3+2,vectorLayer);
- mapObject.addLayer(vectorLayer);
- })
- }
- }
|