4cd04f02 by 杨威

gis重叠分析功能实现

1 parent 3f9a05d3
...@@ -23,7 +23,15 @@ ...@@ -23,7 +23,15 @@
23 "color": "#f50325", 23 "color": "#f50325",
24 "width": 1 24 "width": 1
25 } 25 }
26 },
27 "importSymbol": {
28 "type": "simple-fill",
29 "color": [ 245,3, 37, 0.4 ],
30 "style": "none",
31 "outline": {
32 "color": "#006cff",
33 "width": 2
34 }
26 } 35 }
27
28 } 36 }
29 } 37 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -101,7 +101,8 @@ ...@@ -101,7 +101,8 @@
101 <li v-show="zdData.type == 'zdy'" @click="deleteZdy">删除</li> 101 <li v-show="zdData.type == 'zdy'" @click="deleteZdy">删除</li>
102 </ul> 102 </ul>
103 103
104 <el-dialog title="导入图形" :visible.sync="improtDialog"> 104 <!--@close="closeImportDialog"-->
105 <el-dialog title="导入图形" :modal="false" :close-on-click-modal="false" custom-class="importDialog" :visible.sync="improtDialog" width="30%" @close="closeImportDialog">
105 <import-geo :property-info="zdData" :timeLine="new Date().getTime()" :geo-info="currentClickZdGeo" @closeImportDialog="closeImportDialog"></import-geo> 106 <import-geo :property-info="zdData" :timeLine="new Date().getTime()" :geo-info="currentClickZdGeo" @closeImportDialog="closeImportDialog"></import-geo>
106 </el-dialog> 107 </el-dialog>
107 <!-- 添加定着物弹框 --> 108 <!-- 添加定着物弹框 -->
...@@ -430,6 +431,7 @@ export default { ...@@ -430,6 +431,7 @@ export default {
430 }else { 431 }else {
431 BSM = this.zdData.bsm; 432 BSM = this.zdData.bsm;
432 } 433 }
434 //当确定导入图形是 跳转到图形界面
433 this.queryGeoByBsm(BSM,type,function (features){ 435 this.queryGeoByBsm(BSM,type,function (features){
434 if(features && features.length > 0){ 436 if(features && features.length > 0){
435 if(features[0].geometry){ 437 if(features[0].geometry){
...@@ -438,6 +440,7 @@ export default { ...@@ -438,6 +440,7 @@ export default {
438 cancelButtonText: '取消', 440 cancelButtonText: '取消',
439 type: 'warning' 441 type: 'warning'
440 }).then(() => { 442 }).then(() => {
443 self.postionToMap();
441 self.improtDialog = true; 444 self.improtDialog = true;
442 self.currentClickZdGeo = features[0]; 445 self.currentClickZdGeo = features[0];
443 }).catch(() => { 446 }).catch(() => {
...@@ -447,11 +450,13 @@ export default { ...@@ -447,11 +450,13 @@ export default {
447 }); 450 });
448 }); 451 });
449 }else { 452 }else {
453 self.postionToMap();
450 self.currentClickZdGeo = features[0]; 454 self.currentClickZdGeo = features[0];
451 self.improtDialog = true; 455 self.improtDialog = true;
452 } 456 }
453 457
454 }else{ 458 }else{
459 self.postionToMap();
455 self.currentClickZdGeo = null; 460 self.currentClickZdGeo = null;
456 self.improtDialog = true; 461 self.improtDialog = true;
457 } 462 }
...@@ -500,7 +505,6 @@ export default { ...@@ -500,7 +505,6 @@ export default {
500 }).then(res => { 505 }).then(res => {
501 debugger 506 debugger
502 });*/ 507 });*/
503
504 }else{ 508 }else{
505 self.$message.warning("暂无空间信息!!!!"); 509 self.$message.warning("暂无空间信息!!!!");
506 } 510 }
...@@ -574,6 +578,7 @@ export default { ...@@ -574,6 +578,7 @@ export default {
574 //关闭图形弹框 578 //关闭图形弹框
575 closeImportDialog(){ 579 closeImportDialog(){
576 this.improtDialog = false; 580 this.improtDialog = false;
581 this.clearOverLayer();
577 } 582 }
578 583
579 }, 584 },
...@@ -722,4 +727,8 @@ export default { ...@@ -722,4 +727,8 @@ export default {
722 center; 727 center;
723 background-size: contain; 728 background-size: contain;
724 } 729 }
730 /deep/ .importDialog{
731 margin-top: 120px!important;
732 margin-left: 291px;
733 }
725 </style> 734 </style>
......
...@@ -37,15 +37,13 @@ ...@@ -37,15 +37,13 @@
37 MapView, 37 MapView,
38 esriMap 38 esriMap
39 ]) => { 39 ]) => {
40 var map = new esriMap({ 40 //
41 basemap:"hybrid" 41 var map = new esriMap();
42 });
43 //108.95 34.27 42 //108.95 34.27
44 var view = new MapView({ 43 var view = new MapView({
45 container: self.viewId, 44 container: self.viewId,
46 map: map, 45 map: map,
47 zoom:10, 46 zoom:10,
48 zoom:10,
49 center: [-0.154133333770497,0.6138183594020817], 47 center: [-0.154133333770497,0.6138183594020817],
50 spatialReference: { 48 spatialReference: {
51 wkid: 102100 49 wkid: 102100
......
...@@ -24,7 +24,7 @@ export default { ...@@ -24,7 +24,7 @@ export default {
24 identifyParameters.tolerance = tolerance ? tolerance : 3; 24 identifyParameters.tolerance = tolerance ? tolerance : 3;
25 identifyParameters.mapExtent = mapExtent ? mapExtent : geometry.extent; 25 identifyParameters.mapExtent = mapExtent ? mapExtent : geometry.extent;
26 identifyParameters.returnGeometry = returnGeometry ? returnGeometry : false; 26 identifyParameters.returnGeometry = returnGeometry ? returnGeometry : false;
27 //identifyParameters.returnFieldName = false; 27 //identifyParameters.returnFieldName = true;
28 identifyParameters.spatialReference = geometry.spatialReference; 28 identifyParameters.spatialReference = geometry.spatialReference;
29 identifyTask.execute(identifyParameters).then(result => { 29 identifyTask.execute(identifyParameters).then(result => {
30 if(callBackFunction && typeof callBackFunction == 'function'){ 30 if(callBackFunction && typeof callBackFunction == 'function'){
......
...@@ -22,20 +22,29 @@ export default { ...@@ -22,20 +22,29 @@ export default {
22 var featureLayer = new FeatureLayer({ 22 var featureLayer = new FeatureLayer({
23 url:url 23 url:url
24 }) 24 })
25 var saveGraphics = [];
26 if(!Array.isArray(graphic)){
27 graphic = [graphic];
28 }
29 for(var i = 0;i < graphic.length;i++){
25 var geo = null; 30 var geo = null;
26 if(graphic.geometry.type == 'point'){ 31 if(!graphic[i].geometry){
27 geo = new Point(graphic.geometry); 32 geo = null;
28 }else if(graphic.geometry.type == 'polyline'){ 33 }else if(graphic[i].geometry.type == 'point'){
29 geo = new Polyline(graphic.geometry); 34 geo = new Point(graphic[i].geometry);
30 }else if(graphic.geometry.type == 'polygon'){ 35 }else if(graphic[i].geometry.type == 'polyline'){
31 geo = new Polygon(graphic.geometry); 36 geo = new Polyline(graphic[i].geometry);
37 }else if(graphic[i].geometry.type == 'polygon'){
38 geo = new Polygon(graphic[i].geometry);
32 } 39 }
33 var saveGraphic = new Graphic({ 40 var saveGraphic = new Graphic({
34 attributes:graphic.attributes, 41 attributes:graphic[i].attributes,
35 geometry:geo 42 geometry:geo
36 }); 43 });
44 saveGraphics.push(saveGraphic);
45 }
37 featureLayer.applyEdits({ 46 featureLayer.applyEdits({
38 addFeatures:[saveGraphic] 47 addFeatures:saveGraphics
39 }).then(function (res){ 48 }).then(function (res){
40 if(callBackFunction && typeof callBackFunction == 'function'){ 49 if(callBackFunction && typeof callBackFunction == 'function'){
41 callBackFunction(res); 50 callBackFunction(res);
...@@ -62,20 +71,30 @@ export default { ...@@ -62,20 +71,30 @@ export default {
62 var featureLayer = new FeatureLayer({ 71 var featureLayer = new FeatureLayer({
63 url:url 72 url:url
64 }) 73 })
74 var updGraphics = [];
75 if(!Array.isArray(graphic)){
76 graphic = [graphic];
77 }
78 for(var i = 0;i < graphic.length;i++){
65 var geo = null; 79 var geo = null;
66 if(graphic.geometry.type == 'point'){ 80 if(!graphic[i].geometry){
67 geo = new Point(graphic.geometry); 81 geo = new Polygon();
68 }else if(graphic.geometry.type == 'polyline'){ 82 }else if(graphic[i].geometry.type == 'point'){
69 geo = new Polyline(graphic.geometry); 83 geo = new Point(graphic[i].geometry);
70 }else if(graphic.geometry.type == 'polygon'){ 84 }else if(graphic[i].geometry.type == 'polyline'){
71 geo = new Polygon(graphic.geometry); 85 geo = new Polyline(graphic[i].geometry);
86 }else if(graphic[i].geometry.type == 'polygon'){
87 geo = new Polygon(graphic[i].geometry);
72 } 88 }
73 var updGraphic = new Graphic({ 89 var updGraphic = new Graphic({
74 attributes:graphic.attributes, 90 attributes:graphic[i].attributes,
75 geometry:geo 91 geometry:geo
76 }); 92 });
93 updGraphics.push(updGraphic);
94 }
95
77 featureLayer.applyEdits({ 96 featureLayer.applyEdits({
78 updateFeatures:[updGraphic] 97 updateFeatures:updGraphics
79 }).then(function (res){ 98 }).then(function (res){
80 if(callBackFunction && typeof callBackFunction == 'function'){ 99 if(callBackFunction && typeof callBackFunction == 'function'){
81 callBackFunction(res); 100 callBackFunction(res);
...@@ -102,21 +121,31 @@ export default { ...@@ -102,21 +121,31 @@ export default {
102 var featureLayer = new FeatureLayer({ 121 var featureLayer = new FeatureLayer({
103 url:url 122 url:url
104 }) 123 })
124 var delGraphics = [];
125 if(!Array.isArray(graphic)){
126 graphic = [graphic];
127 }
128 for(var i = 0;i < graphic.length;i++){
105 var geo = null; 129 var geo = null;
106 if(graphic.geometry.type == 'point'){ 130 if(!graphic[i].geometry){
107 geo = new Point(graphic.geometry); 131 geo = null;
108 }else if(graphic.geometry.type == 'polyline'){ 132 }else if(graphic[i].geometry.type == 'point'){
109 geo = new Polyline(graphic.geometry); 133 geo = new Point(graphic[i].geometry);
110 }else if(graphic.geometry.type == 'polygon'){ 134 }else if(graphic[i].geometry.type == 'polyline'){
111 geo = new Polygon(graphic.geometry); 135 geo = new Polyline(graphic[i].geometry);
136 }else if(graphic[i].geometry.type == 'polygon'){
137 geo = new Polygon(graphic[i].geometry);
112 } 138 }
113 var delGraphic = new Graphic({ 139 var delGraphic = new Graphic({
114 attributes:graphic.attributes, 140 attributes:graphic[i].attributes,
115 geometry:geo 141 geometry:geo
116 }); 142 });
143 delGraphics.push(delGraphic);
144 }
145
117 146
118 featureLayer.applyEdits({ 147 featureLayer.applyEdits({
119 deleteFeatures:[delGraphic] 148 deleteFeatures:delGraphics
120 }).then(function (res){ 149 }).then(function (res){
121 if(callBackFunction && typeof callBackFunction == 'function'){ 150 if(callBackFunction && typeof callBackFunction == 'function'){
122 callBackFunction(res); 151 callBackFunction(res);
......
...@@ -28,7 +28,7 @@ export default{ ...@@ -28,7 +28,7 @@ export default{
28 where += " and "; 28 where += " and ";
29 } 29 }
30 if(Array.isArray(parames[i].value)){ 30 if(Array.isArray(parames[i].value)){
31 where += parames[i].name + " in (" + parames[i].value.toString + ")"; 31 where += parames[i].name + " in (" + parames[i].value.toString() + ")";
32 }else if(typeof parames[i].value == 'number'){ 32 }else if(typeof parames[i].value == 'number'){
33 where += parames[i].name + " =" + parames[i].value ; 33 where += parames[i].name + " =" + parames[i].value ;
34 }else{ 34 }else{
......
...@@ -76,15 +76,20 @@ export default { ...@@ -76,15 +76,20 @@ export default {
76 }, 76 },
77 mixins:[mapLayerManager,findTask], 77 mixins:[mapLayerManager,findTask],
78 mounted(){ 78 mounted(){
79 var query = this.$route.query; 79
80 var query = this.$route.query
81 var self = this;
82 setTimeout(function () {
80 if(query && JSON.stringify(query) != "{}"){ 83 if(query && JSON.stringify(query) != "{}"){
81 //self.addGeoByBsm(query.bsm,query.type,self.viewId); 84 //self.addGeoByBsm(query.bsm,query.type,self.viewId);
82 if(query.type == 'zd'){ 85 if(query.type == 'zd'){
83 this.getRightTree(query.bsm) 86 self.getRightTree(query.bsm)
84 }else if(query.type == 'zrz'){ 87 }else if(query.type == 'zrz'){
85 this.getRightTreeByZrzbsm(query.bsm); 88 self.getRightTreeByZrzbsm(query.bsm);
86 } 89 }
87 } 90 }
91 },500);
92
88 93
89 }, 94 },
90 methods:{ 95 methods:{
...@@ -94,8 +99,10 @@ export default { ...@@ -94,8 +99,10 @@ export default {
94 view.ui.remove('zoom'); 99 view.ui.remove('zoom');
95 loadModules([ 100 loadModules([
96 "esri/layers/MapImageLayer", 101 "esri/layers/MapImageLayer",
102 "esri/geometry/Extent"
97 ]).then(([ 103 ]).then(([
98 MapImageLayer, 104 MapImageLayer,
105 Extent
99 ])=>{ 106 ])=>{
100 var mapImageLayer = new MapImageLayer({ 107 var mapImageLayer = new MapImageLayer({
101 url:self.layerUrl, 108 url:self.layerUrl,
...@@ -115,6 +122,13 @@ export default { ...@@ -115,6 +122,13 @@ export default {
115 }] 122 }]
116 }); 123 });
117 view.map.add(mapImageLayer,1); 124 view.map.add(mapImageLayer,1);
125 mapImageLayer.when(function () {
126 var extent = new Extent(JSON.parse(JSON.stringify(mapImageLayer.fullExtent)))
127 extent.spatialReference = view.spatialReference;
128 view.center = extent.center;
129 view.zoom = 15;
130 // view.extent = mapImageLayer.fullExtent;
131 });
118 var query = self.$route.query; 132 var query = self.$route.query;
119 if(query && JSON.stringify(query) != "{}"){ 133 if(query && JSON.stringify(query) != "{}"){
120 self.addGeoByBsm(query.bsm,query.type,self.viewId); 134 self.addGeoByBsm(query.bsm,query.type,self.viewId);
...@@ -137,9 +151,11 @@ export default { ...@@ -137,9 +151,11 @@ export default {
137 }, 151 },
138 //图层选择事件 152 //图层选择事件
139 selectLayerChange(){ 153 selectLayerChange(){
154 debugger
140 var self = this; 155 var self = this;
156 this.features = [];
141 var layerAndResult = this.results.filter(function (item) { 157 var layerAndResult = this.results.filter(function (item) {
142 return item.layerId = self.selectResLayerId; 158 return item.layerId == self.selectResLayerId;
143 }) 159 })
144 if(layerAndResult){ 160 if(layerAndResult){
145 this.features = layerAndResult[0].features; 161 this.features = layerAndResult[0].features;
......
...@@ -79,12 +79,12 @@ export default { ...@@ -79,12 +79,12 @@ export default {
79 return; 79 return;
80 } 80 }
81 for(var i = 0;i < searchResult.length;i++){ 81 for(var i = 0;i < searchResult.length;i++){
82 var layer = view.map.findLayerById("searchResult"+searchResult.layerName); 82 var layer = view.map.findLayerById("searchResult"+searchResult[i].layerId);
83 if(layer){ 83 if(layer){
84 layer.removeAll(); 84 layer.removeAll();
85 }else{ 85 }else{
86 layer = new GraphicsLayer({ 86 layer = new GraphicsLayer({
87 id:"searchResult"+searchResult.layerName 87 id:"searchResult"+searchResult[i].layerId
88 }) 88 })
89 view.map.add(layer); 89 view.map.add(layer);
90 } 90 }
......