地图定位及其样式功能
Showing
6 changed files
with
112 additions
and
13 deletions
src/assets/images/map/postion.png
0 → 100644
744 Bytes
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | <div id="changemap"> | 3 | <div id="changemap"> |
4 | <div v-for="(n,i) in layerArr" :key="i"> | 4 | <div v-for="(n,i) in layerArr" :key="i"> |
... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
15 | </div> | 15 | </div> |
16 | </template> | 16 | </template> |
17 | <script> | 17 | <script> |
18 | import {maps} from '@/libs/map/mapUtils' | ||
18 | export default { | 19 | export default { |
19 | props:{ | 20 | props:{ |
20 | viewId:{ | 21 | viewId:{ |
... | @@ -28,7 +29,7 @@ | ... | @@ -28,7 +29,7 @@ |
28 | { | 29 | { |
29 | img: "shiliang.png", | 30 | img: "shiliang.png", |
30 | text: "矢量图", | 31 | text: "矢量图", |
31 | basemap: '' //hybrid img | 32 | basemap: 'osm' //hybrid img |
32 | }, | 33 | }, |
33 | { | 34 | { |
34 | img: "yingxiang.png", | 35 | img: "yingxiang.png", |
... | @@ -40,15 +41,14 @@ | ... | @@ -40,15 +41,14 @@ |
40 | }, | 41 | }, |
41 | methods: { | 42 | methods: { |
42 | change(index, basemap) { | 43 | change(index, basemap) { |
43 | debugger | 44 | var view = maps[this.viewId],map = null; |
44 | /*var view = maps.threeDView,map = null; | ||
45 | if(view){ | 45 | if(view){ |
46 | map = view.map; | 46 | map = view.map; |
47 | }else { | 47 | }else { |
48 | console.log("mapView不存在"); | 48 | console.log("mapView不存在"); |
49 | } | 49 | } |
50 | map.basemap = basemap; // streets | 50 | map.basemap = basemap; // streets |
51 | index > 0 && this.layerArr.unshift(this.layerArr.splice(index, 1)[0]);*/ | 51 | index > 0 && this.layerArr.unshift(this.layerArr.splice(index, 1)[0]); |
52 | } | 52 | } |
53 | } | 53 | } |
54 | }; | 54 | }; | ... | ... |
... | @@ -10,12 +10,16 @@ | ... | @@ -10,12 +10,16 @@ |
10 | <div class="searchCondition" v-if="isShowCondition"> | 10 | <div class="searchCondition" v-if="isShowCondition"> |
11 | <ul> | 11 | <ul> |
12 | <li @click="fieldName = 'ZDDM'"> | 12 | <li @click="fieldName = 'ZDDM'"> |
13 | <span :class="fieldName == 'ZDDM'?'active':''"> | ||
13 | <i class="iconfont iconzongdidaima"></i> | 14 | <i class="iconfont iconzongdidaima"></i> |
14 | <span>宗地代码</span> | 15 | <span>宗地代码</span> |
16 | </span> | ||
15 | </li> | 17 | </li> |
16 | <li @click="fieldName = 'BDCDYH'"> | 18 | <li @click="fieldName = 'BDCDYH'"> |
19 | <span :class="fieldName == 'BDCDYH'?'active':''"> | ||
17 | <i class="iconfont iconbudongchandanyuanhao"></i> | 20 | <i class="iconfont iconbudongchandanyuanhao"></i> |
18 | <span>不动产单元号</span> | 21 | <span>不动产单元号</span> |
22 | </span> | ||
19 | </li> | 23 | </li> |
20 | </ul> | 24 | </ul> |
21 | </div> | 25 | </div> |
... | @@ -386,7 +390,6 @@ export default { | ... | @@ -386,7 +390,6 @@ export default { |
386 | } | 390 | } |
387 | } | 391 | } |
388 | layerAndResult.features.push(feature); | 392 | layerAndResult.features.push(feature); |
389 | debugger | ||
390 | self.results.push(layerAndResult); | 393 | self.results.push(layerAndResult); |
391 | } | 394 | } |
392 | } | 395 | } |
... | @@ -439,6 +442,7 @@ export default { | ... | @@ -439,6 +442,7 @@ export default { |
439 | border-radius: 4px; | 442 | border-radius: 4px; |
440 | margin-top: 6px; | 443 | margin-top: 6px; |
441 | box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.12); | 444 | box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.12); |
445 | position: relative; | ||
442 | ul{ | 446 | ul{ |
443 | //height: 40px; | 447 | //height: 40px; |
444 | display: inline-flex; | 448 | display: inline-flex; |
... | @@ -454,6 +458,8 @@ export default { | ... | @@ -454,6 +458,8 @@ export default { |
454 | i{ | 458 | i{ |
455 | font-size: 24px; | 459 | font-size: 24px; |
456 | margin-right: 3px; | 460 | margin-right: 3px; |
461 | position: relative; | ||
462 | top: 2px; | ||
457 | } | 463 | } |
458 | span{ | 464 | span{ |
459 | font-size: 14px; | 465 | font-size: 14px; |
... | @@ -465,6 +471,10 @@ export default { | ... | @@ -465,6 +471,10 @@ export default { |
465 | .iconbudongchandanyuanhao{ | 471 | .iconbudongchandanyuanhao{ |
466 | color: #F39835; | 472 | color: #F39835; |
467 | } | 473 | } |
474 | .active{ | ||
475 | border-bottom: 1.5px solid #409eff; | ||
476 | padding-bottom: 5px; | ||
477 | } | ||
468 | } | 478 | } |
469 | .searchResult{ | 479 | .searchResult{ |
470 | margin-top: 3px; | 480 | margin-top: 3px; | ... | ... |
1 | import {loadModules} from 'esri-loader' | 1 | import {loadModules} from 'esri-loader' |
2 | import {maps} from '@/libs/map/mapUtils' | 2 | import {maps} from '@/libs/map/mapUtils' |
3 | import graphicSymbol from '@/assets/json/graphicSymbol.json' | 3 | import graphicSymbol from '@/assets/json/graphicSymbol.json' |
4 | import point from "shapefile/shp/point"; | 4 | import point from "shapefile/shp/point"; |
... | @@ -136,5 +136,45 @@ export default { | ... | @@ -136,5 +136,45 @@ export default { |
136 | 136 | ||
137 | }) | 137 | }) |
138 | }, | 138 | }, |
139 | //定位到一个点上 | ||
140 | postionToPoint(viewId,x,y){ | ||
141 | var self = this; | ||
142 | loadModules([ | ||
143 | "esri/geometry/Point", | ||
144 | "esri/symbols/PictureMarkerSymbol", | ||
145 | "esri/geometry/coordinateFormatter", | ||
146 | "esri/Graphic" | ||
147 | ]).then(([ | ||
148 | Point, | ||
149 | PictureMarkerSymbol, | ||
150 | coordinateFormatter, | ||
151 | Graphic | ||
152 | ])=>{ | ||
153 | var point = new Point({ | ||
154 | x:x, | ||
155 | y:y, | ||
156 | |||
157 | }); | ||
158 | var view = maps[viewId]; | ||
159 | var symbol = new PictureMarkerSymbol({ | ||
160 | url:require('@assets/images/map/postion.png'), | ||
161 | width:"32px", | ||
162 | height:'32px' | ||
163 | }); | ||
164 | view.graphics.removeAll(); | ||
165 | view.graphics.add(new Graphic({ | ||
166 | geometry:point, | ||
167 | symbol:symbol | ||
168 | })); | ||
169 | view.center = point; | ||
170 | }).catch(err => { | ||
171 | console.log(err); | ||
172 | }) | ||
173 | }, | ||
174 | //清除定位图层 | ||
175 | clearPostionLayer(viewId){ | ||
176 | var view = maps[viewId]; | ||
177 | view.graphics.removeAll(); | ||
178 | } | ||
139 | } | 179 | } |
140 | } | 180 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -9,7 +9,7 @@ | ... | @@ -9,7 +9,7 @@ |
9 | <i class="iconfont iconkongjianchaxun"></i> | 9 | <i class="iconfont iconkongjianchaxun"></i> |
10 | <span>空间查询</span> | 10 | <span>空间查询</span> |
11 | </li> --> | 11 | </li> --> |
12 | <li> | 12 | <li @click="pointPostion"> |
13 | <i class="iconfont iconzuobiaodingwei"></i> | 13 | <i class="iconfont iconzuobiaodingwei"></i> |
14 | <span>定位</span> | 14 | <span>定位</span> |
15 | </li> | 15 | </li> |
... | @@ -46,7 +46,19 @@ | ... | @@ -46,7 +46,19 @@ |
46 | <span>清除</span> | 46 | <span>清除</span> |
47 | </li> | 47 | </li> |
48 | </ul> | 48 | </ul> |
49 | 49 | <div class="postionDialog" v-if="isPostion"> | |
50 | <el-form :inline="true" :model="postionParams" size="small"> | ||
51 | <el-form-item label="经度:"> | ||
52 | <el-input v-model="postionParams.x" placeholder="请输入经度"></el-input> | ||
53 | </el-form-item> | ||
54 | <el-form-item label="纬度:"> | ||
55 | <el-input v-model="postionParams.y" placeholder="请输入经度"></el-input> | ||
56 | </el-form-item> | ||
57 | <el-form-item> | ||
58 | <el-button type="primary" @click="toPostion">定位</el-button> | ||
59 | </el-form-item> | ||
60 | </el-form> | ||
61 | </div> | ||
50 | </div> | 62 | </div> |
51 | </template> | 63 | </template> |
52 | <script> | 64 | <script> |
... | @@ -73,7 +85,12 @@ export default { | ... | @@ -73,7 +85,12 @@ export default { |
73 | selectResLayerId:"", | 85 | selectResLayerId:"", |
74 | features:[], | 86 | features:[], |
75 | resultLayers:[], | 87 | resultLayers:[], |
76 | results:[] | 88 | results:[], |
89 | postionParams:{ | ||
90 | x:"", | ||
91 | y:"" | ||
92 | }, | ||
93 | isPostion:false | ||
77 | } | 94 | } |
78 | }, | 95 | }, |
79 | methods:{ | 96 | methods:{ |
... | @@ -91,6 +108,10 @@ export default { | ... | @@ -91,6 +108,10 @@ export default { |
91 | clear(){ | 108 | clear(){ |
92 | this.measure(this.viewId,null); | 109 | this.measure(this.viewId,null); |
93 | this.$parent.closeResultDialog(); | 110 | this.$parent.closeResultDialog(); |
111 | this.$parent.closeBufferDialog(); | ||
112 | //清除定位 关闭定位 | ||
113 | this.clearPostionLayer(this.viewId); | ||
114 | this.isPostion = false; | ||
94 | }, | 115 | }, |
95 | info(){ | 116 | info(){ |
96 | var view = maps[this.viewId]; | 117 | var view = maps[this.viewId]; |
... | @@ -140,7 +161,26 @@ export default { | ... | @@ -140,7 +161,26 @@ export default { |
140 | throw (err); | 161 | throw (err); |
141 | }) | 162 | }) |
142 | }); | 163 | }); |
143 | } | 164 | }, |
165 | //定位 | ||
166 | pointPostion(){ | ||
167 | //清除参数 清除图层 | ||
168 | this.clearPostionLayer(this.viewId); | ||
169 | for(var key in this.postionParams){ | ||
170 | this.postionParams[key] = ""; | ||
171 | } | ||
172 | this.isPostion = true; | ||
173 | }, | ||
174 | toPostion(){ | ||
175 | if(!this.postionParams.x){ | ||
176 | this.$message.warning("请输入经度!!!!"); | ||
177 | return; | ||
178 | }else if(!this.postionParams.y){ | ||
179 | this.$message.warning("请输入纬度!!!!"); | ||
180 | return; | ||
181 | } | ||
182 | this.postionToPoint(this.viewId,this.postionParams.x,this.postionParams.y); | ||
183 | } | ||
144 | } | 184 | } |
145 | 185 | ||
146 | 186 | ||
... | @@ -151,7 +191,6 @@ export default { | ... | @@ -151,7 +191,6 @@ export default { |
151 | position: relative; | 191 | position: relative; |
152 | display: flex; | 192 | display: flex; |
153 | justify-content: space-around; | 193 | justify-content: space-around; |
154 | line-height: 48px; | ||
155 | background-color: #FFFFFF; | 194 | background-color: #FFFFFF; |
156 | box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.18); | 195 | box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.18); |
157 | border-radius: 4px; | 196 | border-radius: 4px; |
... | @@ -165,7 +204,7 @@ export default { | ... | @@ -165,7 +204,7 @@ export default { |
165 | height: 24px; | 204 | height: 24px; |
166 | line-height: 24px; | 205 | line-height: 24px; |
167 | i{ | 206 | i{ |
168 | font-size:16px; | 207 | font-size:20px; |
169 | color: #8C8E91; | 208 | color: #8C8E91; |
170 | position: relative; | 209 | position: relative; |
171 | top: 2px; | 210 | top: 2px; |
... | @@ -182,6 +221,11 @@ export default { | ... | @@ -182,6 +221,11 @@ export default { |
182 | cursor:pointer | 221 | cursor:pointer |
183 | } | 222 | } |
184 | } | 223 | } |
224 | |||
225 | .postionDialog{ | ||
226 | position: absolute; | ||
227 | top: 58px; | ||
228 | } | ||
185 | } | 229 | } |
186 | 230 | ||
187 | </style> | 231 | </style> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -113,6 +113,7 @@ | ... | @@ -113,6 +113,7 @@ |
113 | :value="item.dm"> | 113 | :value="item.dm"> |
114 | </el-option> | 114 | </el-option> |
115 | </el-select> | 115 | </el-select> |
116 | <div class="towSelect"> | ||
116 | <el-select v-model="bufferParams.selectDjzq" filterable size="small" placeholder="请选择地籍子区"> | 117 | <el-select v-model="bufferParams.selectDjzq" filterable size="small" placeholder="请选择地籍子区"> |
117 | <el-option | 118 | <el-option |
118 | v-for="(item,index) in djzqList" | 119 | v-for="(item,index) in djzqList" |
... | @@ -121,6 +122,7 @@ | ... | @@ -121,6 +122,7 @@ |
121 | :value="item.dm"> | 122 | :value="item.dm"> |
122 | </el-option> | 123 | </el-option> |
123 | </el-select> | 124 | </el-select> |
125 | </div> | ||
124 | </div> | 126 | </div> |
125 | <div class="contentItem"> | 127 | <div class="contentItem"> |
126 | <span>缓冲距离:</span> | 128 | <span>缓冲距离:</span> |
... | @@ -529,6 +531,9 @@ | ... | @@ -529,6 +531,9 @@ |
529 | cursor:pointer | 531 | cursor:pointer |
530 | } | 532 | } |
531 | } | 533 | } |
534 | .towSelect{ | ||
535 | margin-left: 100px; | ||
536 | } | ||
532 | } | 537 | } |
533 | .buttonDiv{ | 538 | .buttonDiv{ |
534 | text-align: center; | 539 | text-align: center; | ... | ... |
-
Please register or sign in to post a comment