565cf7bd by 杨威

新增字体图标和缓冲区分析

1 parent 9dba5525
......@@ -31,6 +31,30 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe6d7;</span>
<div class="name">绘制方式1</div>
<div class="code-name">&amp;#xe6d7;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6d8;</span>
<div class="name">绘制方式2</div>
<div class="code-name">&amp;#xe6d8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6db;</span>
<div class="name">绘制方式3</div>
<div class="code-name">&amp;#xe6db;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6dd;</span>
<div class="name">绘制方式4</div>
<div class="code-name">&amp;#xe6dd;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe793;</span>
<div class="name">识别</div>
<div class="code-name">&amp;#xe793;</div>
......@@ -453,6 +477,42 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont iconhuizhifangshi1"></span>
<div class="name">
绘制方式1
</div>
<div class="code-name">.iconhuizhifangshi1
</div>
</li>
<li class="dib">
<span class="icon iconfont iconhuizhifangshi2"></span>
<div class="name">
绘制方式2
</div>
<div class="code-name">.iconhuizhifangshi2
</div>
</li>
<li class="dib">
<span class="icon iconfont iconhuizhifangshi3"></span>
<div class="name">
绘制方式3
</div>
<div class="code-name">.iconhuizhifangshi3
</div>
</li>
<li class="dib">
<span class="icon iconfont iconhuizhifangshi4"></span>
<div class="name">
绘制方式4
</div>
<div class="code-name">.iconhuizhifangshi4
</div>
</li>
<li class="dib">
<span class="icon iconfont iconshibie"></span>
<div class="name">
识别
......@@ -1041,6 +1101,38 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#iconhuizhifangshi1"></use>
</svg>
<div class="name">绘制方式1</div>
<div class="code-name">#iconhuizhifangshi1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#iconhuizhifangshi2"></use>
</svg>
<div class="name">绘制方式2</div>
<div class="code-name">#iconhuizhifangshi2</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#iconhuizhifangshi3"></use>
</svg>
<div class="name">绘制方式3</div>
<div class="code-name">#iconhuizhifangshi3</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#iconhuizhifangshi4"></use>
</svg>
<div class="name">绘制方式4</div>
<div class="code-name">#iconhuizhifangshi4</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#iconshibie"></use>
</svg>
<div class="name">识别</div>
......
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1609384445470'); /* IE9 */
src: url('iconfont.eot?t=1609384445470#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1609384445470') format('woff'),
url('iconfont.ttf?t=1609384445470') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1609384445470#iconfont') format('svg'); /* iOS 4.1- */
src: url('iconfont.eot?t=1609402912620'); /* IE9 */
src: url('iconfont.eot?t=1609402912620#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1609402912620') format('woff'),
url('iconfont.ttf?t=1609402912620') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1609402912620#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
......@@ -15,6 +15,22 @@
-moz-osx-font-smoothing: grayscale;
}
.iconhuizhifangshi1:before {
content: "\e6d7";
}
.iconhuizhifangshi2:before {
content: "\e6d8";
}
.iconhuizhifangshi3:before {
content: "\e6db";
}
.iconhuizhifangshi4:before {
content: "\e6dd";
}
.iconshibie:before {
content: "\e793";
}
......
This diff could not be displayed because it is too large.
......@@ -6,6 +6,34 @@
"description": "",
"glyphs": [
{
"icon_id": "15148386",
"name": "绘制方式1",
"font_class": "huizhifangshi1",
"unicode": "e6d7",
"unicode_decimal": 59095
},
{
"icon_id": "15148387",
"name": "绘制方式2",
"font_class": "huizhifangshi2",
"unicode": "e6d8",
"unicode_decimal": 59096
},
{
"icon_id": "15148390",
"name": "绘制方式3",
"font_class": "huizhifangshi3",
"unicode": "e6db",
"unicode_decimal": 59099
},
{
"icon_id": "15148392",
"name": "绘制方式4",
"font_class": "huizhifangshi4",
"unicode": "e6dd",
"unicode_decimal": 59101
},
{
"icon_id": "19153729",
"name": "识别",
"font_class": "shibie",
......
......@@ -20,6 +20,18 @@ Created by iconfont
/>
<missing-glyph />
<glyph glyph-name="huizhifangshi1" unicode="&#59095;" d="M153.6 742.4h716.8a102.4 102.4 0 0 0 102.4-102.4v-512a102.4 102.4 0 0 0-102.4-102.4H153.6a102.4 102.4 0 0 0-102.4 102.4V640a102.4 102.4 0 0 0 102.4 102.4z m0-51.2a51.2 51.2 0 0 1-51.2-51.2v-512a51.2 51.2 0 0 1 51.2-51.2h716.8a51.2 51.2 0 0 1 51.2 51.2V640a51.2 51.2 0 0 1-51.2 51.2H153.6z" horiz-adv-x="1024" />
<glyph glyph-name="huizhifangshi2" unicode="&#59096;" d="M512-51.2a435.2 435.2 0 1 1 0 870.4 435.2 435.2 0 0 1 0-870.4z m0 51.2a384 384 0 1 0 0 768 384 384 0 0 0 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="huizhifangshi3" unicode="&#59099;" d="M885.3504 193.024c6.912-8.6528 10.6496-19.4048 10.6496-30.464V76.8a76.8 76.8 0 0 0-76.8-76.8H204.8A76.8 76.8 0 0 0 128 76.8V427.008c0 11.8784 4.352 23.4496 12.288 32.4096l257.1776 291.9424a49.0496 49.0496 0 0 0 36.864 16.64h365.7728a49.0496 49.0496 0 0 0 38.5536-79.4112l-172.6976-219.3408 219.392-276.1728zM179.2 426.1888V76.8a25.6 25.6 0 0 1 25.6-25.6h614.4a25.6 25.6 0 0 1 25.6 25.6v84.992l-244.1216 307.3024L795.6992 716.8H435.2L179.2 426.1376z" horiz-adv-x="1024" />
<glyph glyph-name="huizhifangshi4" unicode="&#59101;" d="M547.328 796.0064c-17.0496-11.3664-27.5456-22.784-48.5376-49.5616l-0.2048-0.256c-17.2032-21.9136-25.088-30.6176-35.7376-37.9904-20.5824-14.2336-46.7456-19.0976-88.6784-18.944-9.0112 0-18.432 0.5632-32.512 1.792l-7.6288 0.6656c-99.328 8.7552-143.0016-6.1952-161.1264-90.9824-7.68-36.352 1.1264-60.8256 28.5184-106.2912l4.096-6.8608c18.1248-30.3616 22.6816-45.4656 17.2032-63.0272-2.5088-8.0896-9.9328-16.7424-24.064-28.2112-2.6624-2.2016-4.9664-3.9936-10.1376-8.0384-49.7152-38.912-78.08-67.4304-107.008-110.8992C23.7568 190.6176 13.7216 141.824 37.9904 76.1344c28.2624-76.6464 125.5936-131.4304 201.984-100.1984 37.2736 15.2064 56.4224 33.4336 85.2992 72.6016l5.632 7.5776c23.04 30.976 39.424 45.7728 70.1952 58.2656 38.7072 15.7184 53.0432 3.7376 84.2752-58.112l1.536-3.0208c3.5328-6.9632 5.5808-11.008 7.8848-15.36 60.672-115.3536 185.6-117.504 268.9536-13.6192 38.6048 48.2304 67.584 108.544 59.3408 152.4224-4.864 25.4976-19.2 41.984-48.64 65.3312-9.5232 7.4752-13.7216 10.8032-17.5616 14.08a96.768 96.768 0 0 0-8.704 8.192c-17.5104 19.2-18.5344 28.16-10.752 37.5296 9.4208 11.3664 29.184 22.4256 63.7952 36.5568l24.576 9.8816c9.9328 3.9936 16.9472 6.912 23.552 9.8304l2.3552 1.0752c109.7728 50.176 170.752 116.736 139.1616 217.2928-15.2064 48.3328-106.8544 88.4736-152.6272 70.3488-8.3968-3.328-1.1776-0.1024-34.304-15.104l-10.0864-4.5056c-18.1248-7.936-30.976-12.4416-39.424-13.7216-5.3248 152.064-98.1504 255.1808-207.104 182.528z m207.1552-233.984c16.2816 1.024 34.0992 6.912 59.904 18.2784l10.6496 4.7616c31.4368 14.2336 24.9344 11.264 32.1024 14.1312 18.7392 7.424 78.848-18.8416 84.8896-38.0416 21.0432-66.9696-22.784-114.7904-111.616-155.392l-1.9968-0.9216c-5.8368-2.56-12.288-5.3248-21.6576-9.0624l-24.9344-9.984c-42.3424-17.408-67.1744-31.232-83.8144-51.2512-25.4976-30.72-21.248-67.9424 12.3904-104.8064 3.7888-4.1472 8.1408-8.192 13.312-12.6464 4.608-3.8912 9.5744-7.8336 18.8416-15.1552 20.1216-15.9744 28.4672-25.4976 30.208-34.816 4.608-24.1664-19.2-73.728-48.9984-110.7968-61.44-76.6464-141.2096-75.264-183.6544 5.376l-7.5264 14.6432-1.536 3.0208c-41.9328 83.0464-76.4928 112.0256-149.1968 82.432-40.96-16.5888-63.9488-37.3248-92.0576-75.1104l-5.7344-7.7312c-23.7568-32.256-36.9664-44.8-63.488-55.6032-47.2064-19.3024-115.6096 19.1488-134.5536 70.5024-17.92 48.64-11.264 80.896 38.144 155.1872 25.4464 38.3488 50.176 63.1296 95.8976 98.9696 5.2224 4.0448 7.8848 6.144 10.9056 8.6016 21.3504 17.408 34.3552 32.512 40.6528 52.736 11.0592 35.4816 2.8672 62.5664-22.1184 104.448l-4.1984 7.0656c-20.992 34.7648-26.4192 49.8688-22.3232 69.1712 10.8544 50.8928 30.0032 57.4464 106.5472 50.688L337.3056 640c15.36-1.28 25.9584-1.8944 36.7104-1.9456 51.5584-0.2048 86.528 6.2976 117.9648 28.0064 16.3328 11.3152 26.5216 22.528 46.8992 48.5888l0.2048 0.2048c17.5616 22.4256 25.7024 31.232 36.608 38.5536 64.8704 43.2128 124.4672-23.9616 127.6416-144.6912 0.8192-31.1808 22.016-48.4352 51.1488-46.6944z" horiz-adv-x="1024" />
<glyph glyph-name="shibie" unicode="&#59283;" d="M488.727273 11.636364a349.090909 349.090909 0 1 0 0 698.181818 349.090909 349.090909 0 0 0 0-698.181818z m24.948363 131.072a219.508364 219.508364 0 0 1 193.349819 195.584h31.045818a22.434909 22.434909 0 0 1 0 44.869818h-31.045818a219.508364 219.508364 0 0 1-193.349819 195.584v28.858182a22.434909 22.434909 0 0 1-44.916363 0v-28.346182a219.508364 219.508364 0 0 1-198.283637-196.096h-31.092363a22.434909 22.434909 0 0 1 0-44.869818h31.045818a219.508364 219.508364 0 0 1 198.330182-196.096v-33.326546a22.434909 22.434909 0 0 1 44.916363 0v33.838546z m-44.916363 39.563636a179.618909 179.618909 0 0 0-158.161455 156.020364h158.161455v-156.020364z m44.916363 0.651636v155.368728h153.181091a179.665455 179.665455 0 0 0-153.181091-155.368728z m-44.916363 356.258909v-156.020363H310.597818a179.618909 179.618909 0 0 0 158.161455 156.020363z m44.916363-0.651636a179.665455 179.665455 0 0 0 153.181091-155.368727h-153.181091V538.530909z" horiz-adv-x="1024" />
......

23.9 KB | W: | H:

8.28 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

84.2 KB | W: | H:

26.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
......@@ -22,7 +22,7 @@
<!--搜索弹出框-->
<div class="searchResult" v-show="dialogVisible">
<div class="-header">
<span class="title">地块信息</span>
<span class="title">共有搜索结果&nbsp;&nbsp;{{totalResults}}</span>
<span class="closeButton">
<i class="close el-icon-close" @click="closeResultDialog"></i>
</span>
......@@ -47,7 +47,7 @@
<span class="title"><i class="iconfont iconxinxi"></i> 基本信息</span>
<a href="#" @click="toMap(item)">缩放至</a>
</P>
<hr />
<hr/>
<!-- <div class="contentItem" v-for="(value,key,index) in item.attributes" :key="index">
<span class="key">{{key}}</span>
<span class="value" :title="value">{{value == 'Null' ?"":value}}</span>
......@@ -121,7 +121,8 @@ export default {
inputBsm:"",
fieldName:"BDCDYH",
heighGraphic:null,
isShowCondition:false
isShowCondition:false,
totalResults:0
}
},
mixins:[mapLayerManager,findTask],
......@@ -158,7 +159,8 @@ export default {
url:self.layerUrl,
id:"testLayer",
spatialReference:view.spatialReference,
sublayers:[{
sublayers:[
{
id:19,
visible:true
},
......@@ -169,7 +171,8 @@ export default {
{
id:10,
visible:true
}]
}
]
});
view.map.add(mapImageLayer,1);
var query = self.$route.query;
......@@ -263,7 +266,7 @@ export default {
this.heighGraphic = null;
//清除查询图层
this.clearSearchLayer(this.viewId);
this.totalResults = data.length;
for(var i = 0;i < data.length;i++){
var layerId = data[i].layerId;
var layer = self.getLayerById(layerId);
......@@ -342,7 +345,6 @@ export default {
max-height: 100%;
/deep/ .el-input-group__append{
background-color: #409eff;
border-color: #409eff;
color: white;
}
.searchCondition{
......@@ -387,13 +389,12 @@ export default {
.-header{
line-height: 32px;
padding: 3px 20px;
background-color: #519eff;
background-color: #FFFFFF;
border-top-right-radius: 4px;
border-top-left-radius: 4px;
.title{
font-size: 14px;
color: white;
font-weight: 600;
color: #6D7278;
}
.closeButton{
float: right;
......
......@@ -113,7 +113,7 @@ export default {
}
feature.symbol = highlightSymbol;
var view = maps[viewId];
feature.geometry.type == 'point' ?view.center = feature.geometry :view.extent = feature.geometry.extent;
feature.geometry.type == 'point' ? view.center = feature.geometry :view.center = feature.geometry.extent.center;
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction();
}
......
......@@ -38,7 +38,7 @@
<span>缩小</span>
</li>
<li @click="info">
<i class="iconfont iconshibie"></i>
<i class="iconfont iconxinxi"></i>
<span>识别</span>
</li>
<li @click="clear">
......@@ -46,121 +46,7 @@
<span>清除</span>
</li>
</ul>
<!-- <el-button-group>
<el-button type="primary" title="全图" icon="iconfont iconquantu" @click="fullMap"></el-button>
<el-button type="primary" title="测面" icon="iconfont iconcemianji" @click="measureMent('area')"></el-button>
<el-button type="primary" title="测距" icon="iconfont iconceju" @click="measureMent('distance')"></el-button>
<el-button type="primary" title="放大" icon="iconfont iconlakuangfangda" @click="zoomOut"></el-button>
<el-button type="primary" title="缩小" icon="iconfont iconlakuangsuoxiao" @click="zoomIn"></el-button>
<el-button type="primary" title="点选" icon="iconfont iconchaxunshuxing" @click="info"></el-button>
<el-button type="primary" title="缓冲区分析" icon="iconfont iconqingchu" @click="bufferAnalysis"></el-button>
<el-button type="primary" title="清除" icon="iconfont iconqingchu" @click="clear"></el-button>
</el-button-group> -->
<div class="bufferDialog" v-show="bufferDialog">
<el-tabs v-model="activeName" type="card" @tab-click="tabClick">
<el-tab-pane label="绘制范围" name="hzfw">
<div class="contentItem">
<span>绘制范围:</span>
<div class="drawTypes">
<el-button type="text" @click="bufferParams.drawType = 'point'"></el-button>
<el-button type="text" @click="bufferParams.drawType = 'circle'"></el-button>
<el-button type="text" @click="bufferParams.drawType = 'polygon'">任意多边形</el-button>
</div>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="toIdentity">确定</el-button>
<el-button size="small" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="导入范围" name="drfw">
<div class="contentItem">
<span>绘制范围:</span>
<div class="drawTypes">
<i class="el-icon-plus" @click="openImportDialog"></i>
</div>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="importIdentity">确定</el-button>
<el-button size="small" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="选择范围" name="xzfw">
<div class="contentItem">
<!--地籍区/地籍子区-->
<span>选择范围:</span>
<el-select v-model="bufferParams.selectDjq" filterable size="small" placeholder="请选择地籍区" @change="getDjzqList">
<el-option
v-for="(item,index) in djqList"
:key="index"
:label="item.mc"
:value="item.dm">
</el-option>
</el-select>
<el-select v-model="bufferParams.selectDjzq" filterable size="small" placeholder="请选择地籍子区">
<el-option
v-for="(item,index) in djzqList"
:key="index"
:label="item.mc"
:value="item.dm">
</el-option>
</el-select>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="toFwIdentity">确定</el-button>
<el-button size="small" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
</el-tabs>
</div>
<el-dialog title="图形导入" :visible.sync="importDialog"
width="30%">
<import-geometry @setGeometry="setGeometry"></import-geometry>
</el-dialog>
</div>
</template>
<script>
......@@ -172,7 +58,7 @@ import measure from '@/libs/map/measure'
import mapTools from "./js/mapTools";
import {loadModules} from "esri-loader"
import importGeometry from './importGeometry'
export default {
props:{
viewId:{
......@@ -181,50 +67,13 @@ export default {
}
},
mixins:[draw,identifyUtils,measure,mapTools],
components:{
importGeometry
},
data(){
return{
url:"http://192.168.2.201:6080/arcgis/rest/services/%E4%BA%92%E8%81%94%E7%BD%91%E5%8A%A0%E4%B8%8D%E5%8A%A8%E4%BA%A7/XA_%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer",
selectResLayerId:"",
features:[],
resultLayers:[],
results:[],
bufferParams:{
drawType:"",
distance:0,
layerId:[],
impotGeo:null,
selectDjq:"",
selectDjzq:""
},
activeName:'hzfw',
bufferLayers:[{
layerName:"宗地",
id:"8"
},
{
layerName:"自然幢",
id:"10"
},
{
layerName:"构筑物",
id:"2"
},
{
layerName:"林权",
id:"5"
},
{
layerName:"宗海",
id:"9"
}],
bufferDialog:false,
djqList:[],
djzqList:[],
importDialog:false,
importGeo:""
results:[]
}
},
methods:{
......@@ -290,186 +139,9 @@ export default {
throw (err);
})
});
},
//缓冲区分析
bufferAnalysis(){
this.bufferDialog = true;
},
//缓冲区分析执行语句
toIdentity(){
var self = this;
var view = maps[this.viewId];
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId' || key == 'drawType')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
case 'drawType':name = '绘制类型';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
this.initDraw(this.bufferParams.drawType,this.viewId,null,function(geo){
self.createBuffer(geo,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
})
},
toFwIdentity(){
var self = this;
var view = maps[this.viewId];
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId' || key == 'selectDjq')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
case 'selectDjq':name = '地籍区/地籍子区';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
var layer = null,type = "",dm = "";
if(this.bufferParams.selectDjzq){
layer = this.getLayerByName("DJZQ");
type = 'djzq';
dm = this.bufferParams.selectDjzq;
}else if(this.bufferParams.selectDjq){
layer = this.getLayerByName("DJQ");
type = 'djq';
dm = this.bufferParams.selectDjq;
}
this.queryDjqByDm(this.url+"/"+layer.id,type,dm,function (features) {
if(features.length > 0){
self.createBuffer(features[0].geometry,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
}
});
},
importIdentity(){
var self = this;
var view = maps[this.viewId];
if(!this.importGeo){
this.$message.warning("请导入空间范围!!");
return;
}
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
self.createBuffer(this.importGeo,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
},
//清除缓冲区参数
resetBufferParams(){
//清除参数
for(var key in this.bufferParams){
if(key == 'distance'){
this.bufferParams[key] = 0;
}else if(key == 'layerId'){
this.bufferParams[key] = []
} else {
this.bufferParams[key] = "";
}
}
//清除结果图层和绘制图层
this.$parent.closeResultDialog();
this.clearBufferLayer();
},
//获取地籍区/地籍子区数据
getDjqList(){
var self = this;
var djqLayer = this.getLayerByName("DJQ");
this.queryAttributes(this.url+"/"+djqLayer.id,"",function (features) {
//self.djqAndDjzq.concat = features;
if(features != null){
for(var i = 0;i < features.length;i++){
var obj = {
dm:features[i].attributes.DJQDM,
mc:features[i].attributes.DJQMC,
type:"djq"
}
self.djqList.push(obj);
}
}
})
},
//获取地籍子区
getDjzqList(){
var self = this,
djzqLayer= this.getLayerByName("DJZQ");
self.djzqList = [];
this.queryAttributes(this.url+"/"+djzqLayer.id,{"DJZQDM":this.bufferParams.selectDjq},function (features) {
if(features != null){
for(var i = 0;i < features.length;i++){
var obj = {
dm:features[i].attributes.DJZQDM,
mc:features[i].attributes.DJZQMC,
type:"djzq"
}
self.djzqList.push(obj);
}
}
})
},
tabClick(name){
if(this.activeName == 'xzfw'){
if(this.djqList.length == 0){
this.djzqList = [];
this.getDjqList();
}
}
},
//设置导入的空间数据
setGeometry(geo){
this.importGeo = geo;
this.importDialog = false;
},
//打开导入空间
openImportDialog(){
this.importDialog = true;
},
}
}
</script>
......@@ -510,21 +182,5 @@ export default {
}
}
}
.bufferDialog{
background: #f9f8f7;
margin-top: 5px;
padding-bottom: 20px;
/deep/ .el-tabs__header{
margin: 0px;
}
.contentItem{
margin: 8px 5px;
.drawTypes{
display: contents;
}
}
.buttonDiv{
text-align: center;
}
}
</style>
\ No newline at end of file
......
......@@ -27,6 +27,7 @@
node-key="id"
highlight-current
@check="checkTreeNode"
:default-checked-keys="defaultSelectNodes"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
......@@ -36,13 +37,123 @@
</span>
</el-tree>
</div>
<div class="contet" v-show="currentActivate == 'huanchongqu'">
<el-tabs v-model="activeName" type="card" @tab-click="tabClick">
<el-tab-pane label="绘制范围" name="hzfw">
<div class="contentItem">
<span>绘制范围:</span>
<div class="drawTypes">
<el-button type="text" @click="bufferParams.drawType = 'point'"></el-button>
<el-button type="text" @click="bufferParams.drawType = 'circle'"></el-button>
<el-button type="text" @click="bufferParams.drawType = 'polygon'">任意多边形</el-button>
</div>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="toIdentity">分析</el-button>
<el-button size="small" type="warning" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="导入范围" name="drfw">
<div class="contentItem">
<span>绘制范围:</span>
<div class="drawTypes">
<i class="el-icon-plus" @click="openImportDialog"></i>
</div>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="importIdentity">分析</el-button>
<el-button size="small" type="warning" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="选择范围" name="xzfw">
<div class="contentItem">
<!--地籍区/地籍子区-->
<span>选择范围:</span>
<el-select v-model="bufferParams.selectDjq" filterable size="small" placeholder="请选择地籍区" @change="getDjzqList">
<el-option
v-for="(item,index) in djqList"
:key="index"
:label="item.mc"
:value="item.dm">
</el-option>
</el-select>
<el-select v-model="bufferParams.selectDjzq" filterable size="small" placeholder="请选择地籍子区">
<el-option
v-for="(item,index) in djzqList"
:key="index"
:label="item.mc"
:value="item.dm">
</el-option>
</el-select>
</div>
<div class="contentItem">
<span>缓冲距离:</span>
<el-input-number :min="0" v-model="bufferParams.distance" size="small"></el-input-number>
</div>
<div class="contentItem">
<span>图层选择:</span>
<el-select size="small" multiple v-model="bufferParams.layerId">
<el-option
v-for="item in bufferLayers"
:key="item.id"
:label="item.layerName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="buttonDiv">
<el-button size="small" type="primary" @click="toFwIdentity">分析</el-button>
<el-button size="small" type="warning" @click="resetBufferParams">重置</el-button>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="contet" v-show="currentActivate == 'chongdiefenxi'"></div>
</div>
<el-dialog title="图形导入" :visible.sync="importDialog"
width="30%">
<import-geometry @setGeometry="setGeometry"></import-geometry>
</el-dialog>
</div>
</template>
<script>
import {maps} from '@/libs/map/mapUtils'
import draw from '@/libs/map/draw'
import identifyUtils from '@/libs/map/IdentifyUtils'
import layerTree from '@/assets/json/layerTreeData.json'
import mapLayerManager from './js/mapLayerManager.js'
import importGeometry from './importGeometry'
export default{
props:{
viewId:{
......@@ -51,13 +162,50 @@
}
},
mixins:[mapLayerManager],
components:{
importGeometry
},
data(){
return{
currentActivate:"",
layerTreeData:[],
defaultSelectNodes:[19,8,10],
defaultSelectNodes:['1-1-1-2','1-1-3-3','1-1-3-9'],
layerUrl:"http://192.168.2.201:6080/arcgis/rest/services/%E4%BA%92%E8%81%94%E7%BD%91%E5%8A%A0%E4%B8%8D%E5%8A%A8%E4%BA%A7/XA_%E4%B8%8D%E5%8A%A8%E4%BA%A7/MapServer",
sidePanelShow:false
sidePanelShow:false,
bufferParams:{
drawType:"",
distance:0,
layerId:[],
impotGeo:null,
selectDjq:"",
selectDjzq:""
},
activeName:'hzfw',
bufferLayers:[{
layerName:"宗地",
id:"8"
},
{
layerName:"自然幢",
id:"10"
},
{
layerName:"构筑物",
id:"2"
},
{
layerName:"林权",
id:"5"
},
{
layerName:"宗海",
id:"9"
}],
bufferDialog:false,
djqList:[],
djzqList:[],
importDialog:false,
importGeo:""
}
},
mounted(){
......@@ -120,6 +268,183 @@
var ids = [];
this.getChildrens(nodeData,ids);
this.setLayerOpacity(this.viewId,ids,nodeData.alpha);
},
//缓冲区分析
bufferAnalysis(){
this.bufferDialog = true;
},
//缓冲区分析执行语句
toIdentity(){
var self = this;
var view = maps[this.viewId];
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId' || key == 'drawType')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
case 'drawType':name = '绘制类型';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
this.initDraw(this.bufferParams.drawType,this.viewId,null,function(geo){
self.createBuffer(geo,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
})
},
toFwIdentity(){
var self = this;
var view = maps[this.viewId];
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId' || key == 'selectDjq')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
case 'selectDjq':name = '地籍区/地籍子区';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
var layer = null,type = "",dm = "";
if(this.bufferParams.selectDjzq){
layer = this.getLayerByName("DJZQ");
type = 'djzq';
dm = this.bufferParams.selectDjzq;
}else if(this.bufferParams.selectDjq){
layer = this.getLayerByName("DJQ");
type = 'djq';
dm = this.bufferParams.selectDjq;
}
this.queryDjqByDm(this.url+"/"+layer.id,type,dm,function (features) {
if(features.length > 0){
self.createBuffer(features[0].geometry,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
}
});
},
importIdentity(){
var self = this;
var view = maps[this.viewId];
if(!this.importGeo){
this.$message.warning("请导入空间范围!!");
return;
}
for(var key in this.bufferParams){
if((key == 'distance' || key == 'layerId')&&!this.bufferParams[key].toString()){
var name = "";
switch (key) {
case 'distance':name = '缓冲距离';break;
case 'layerId':name = '分析图层';break;
}
key == 'distance'?this.$message.warning("请输入"+name):this.$message.warning("请选择"+name);
return;
}
}
self.createBuffer(this.importGeo,self.bufferParams.distance,self.viewId,function (bufGeo) {
self.identify(self.url,self.bufferParams.layerId,bufGeo,function(res){
var resultes = res.results;
if(resultes && resultes.length > 0){
self.$parent.delIdentifyData(resultes);
self.$parent.dialogVisible = true;
}else{
self.$message.success("暂无数据!!!");
}
},true,'all',3,view.extent);
})
},
//清除缓冲区参数
resetBufferParams(){
//清除参数
for(var key in this.bufferParams){
if(key == 'distance'){
this.bufferParams[key] = 0;
}else if(key == 'layerId'){
this.bufferParams[key] = []
} else {
this.bufferParams[key] = "";
}
}
//清除结果图层和绘制图层
this.$parent.closeResultDialog();
this.clearBufferLayer();
},
//获取地籍区/地籍子区数据
getDjqList(){
var self = this;
var djqLayer = this.getLayerByName("DJQ");
this.queryAttributes(this.url+"/"+djqLayer.id,"",function (features) {
//self.djqAndDjzq.concat = features;
if(features != null){
for(var i = 0;i < features.length;i++){
var obj = {
dm:features[i].attributes.DJQDM,
mc:features[i].attributes.DJQMC,
type:"djq"
}
self.djqList.push(obj);
}
}
})
},
//获取地籍子区
getDjzqList(){
var self = this,
djzqLayer= this.getLayerByName("DJZQ");
self.djzqList = [];
this.queryAttributes(this.url+"/"+djzqLayer.id,{"DJZQDM":this.bufferParams.selectDjq},function (features) {
if(features != null){
for(var i = 0;i < features.length;i++){
var obj = {
dm:features[i].attributes.DJZQDM,
mc:features[i].attributes.DJZQMC,
type:"djzq"
}
self.djzqList.push(obj);
}
}
})
},
tabClick(name){
if(this.activeName == 'xzfw'){
if(this.djqList.length == 0){
this.djzqList = [];
this.getDjqList();
}
}
},
//设置导入的空间数据
setGeometry(geo){
this.importGeo = geo;
this.importDialog = false;
},
//打开导入空间
openImportDialog(){
this.importDialog = true;
}
}
}
......@@ -161,7 +486,7 @@
}
.sidePanel{
height: 500px;
width: 300px;
width: 350px;
position: absolute;
background-color: #FFFFFF;
top: 0px;
......@@ -173,6 +498,18 @@
box-sizing: border-box;
padding:10px
}
/deep/ .el-tabs__header{
margin: 0px;
}
.contentItem{
margin: 8px 5px;
.drawTypes{
display: contents;
}
}
.buttonDiv{
text-align: center;
}
}
.custom-tree-node{
display: contents;
......