gis重叠分析功能实现
Showing
10 changed files
with
99 additions
and
39 deletions
| ... | @@ -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> | ... | ... | 
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
| ... | @@ -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 | } | ... | ... | 
- 
Please register or sign in to post a comment