|
@ -38,20 +38,18 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="div_data"> |
|
|
<div class="div_data"> |
|
|
<div class="div_search"> |
|
|
<div @click="handleSearch" |
|
|
<el-input size="mini" |
|
|
class="div_search"> |
|
|
@focus="handleSearch" |
|
|
<div class="div_search_left"> |
|
|
WarningColor='warning' |
|
|
|
|
|
placeholder="请输入姓名"> |
|
|
|
|
|
<i slot="prefix" |
|
|
<i slot="prefix" |
|
|
class="icon"> |
|
|
class="icon"> |
|
|
<img src="../../../../assets/img/modules/visual/sousuo.png" |
|
|
<img src="../../../../assets/img/modules/visual/sousuo.png" |
|
|
alt /> |
|
|
alt /> |
|
|
</i> |
|
|
</i> |
|
|
</el-input> |
|
|
<span>请输入姓名</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="btn" |
|
|
<div class="btn">搜索</div> |
|
|
@click="handleSearch">搜索</div> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
@ -291,11 +289,12 @@ const vueGis = { |
|
|
|
|
|
|
|
|
//下钻到下一级 type点击的类型:polygon 点击多边形(分为点击组织/小区) search 点击搜索 people 点击详情 |
|
|
//下钻到下一级 type点击的类型:polygon 点击多边形(分为点击组织/小区) search 点击搜索 people 点击详情 |
|
|
async toSubAgency (type, e, searchName) { |
|
|
async toSubAgency (type, e, searchName) { |
|
|
//点击小区neighborHood显示楼栋,点击非小区,进入下一级地图 |
|
|
console.log(e) |
|
|
this.runNum++ |
|
|
this.runNum++ |
|
|
this.runAgencyArray.push(this.orgData) |
|
|
this.runAgencyArray.push(this.orgData) |
|
|
|
|
|
//点击小区neighborHood显示楼栋,点击非小区,进入下一级地图 |
|
|
if (type === 'people') { |
|
|
if (type === 'people') { |
|
|
|
|
|
|
|
|
this.orgLevel = 'people' |
|
|
this.orgLevel = 'people' |
|
|
this.selUserId = e |
|
|
this.selUserId = e |
|
|
this.orgId = '' |
|
|
this.orgId = '' |
|
@ -307,6 +306,8 @@ const vueGis = { |
|
|
this.searchName = searchName |
|
|
this.searchName = searchName |
|
|
|
|
|
|
|
|
} else if (type === 'search') { |
|
|
} else if (type === 'search') { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.orgLevel = 'search' |
|
|
this.orgLevel = 'search' |
|
|
this.orgId = '' |
|
|
this.orgId = '' |
|
|
this.orgData = { |
|
|
this.orgData = { |
|
@ -320,7 +321,8 @@ const vueGis = { |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.subAgencyArray.forEach(item => { |
|
|
this.subAgencyArray.forEach(item => { |
|
|
if (item.id === e.selected[0].id_) { |
|
|
|
|
|
|
|
|
if (item.id === e.selected[0].values_.id) { |
|
|
this.orgId = item.id |
|
|
this.orgId = item.id |
|
|
this.orgLevel = item.level |
|
|
this.orgLevel = item.level |
|
|
this.orgData = item |
|
|
this.orgData = item |
|
@ -338,6 +340,7 @@ const vueGis = { |
|
|
} else { |
|
|
} else { |
|
|
this.refreshMap(true) |
|
|
this.refreshMap(true) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -365,7 +368,6 @@ const vueGis = { |
|
|
|
|
|
|
|
|
//返回所选组织 |
|
|
//返回所选组织 |
|
|
handleClickAgency (index) { |
|
|
handleClickAgency (index) { |
|
|
|
|
|
|
|
|
const cutNum = this.runAgencyArray.length - index//要减去的长度 |
|
|
const cutNum = this.runAgencyArray.length - index//要减去的长度 |
|
|
this.runNum = this.runNum - cutNum |
|
|
this.runNum = this.runNum - cutNum |
|
|
this.orgData = this.runAgencyArray[index] |
|
|
this.orgData = this.runAgencyArray[index] |
|
@ -379,10 +381,8 @@ const vueGis = { |
|
|
|
|
|
|
|
|
if (this.orgLevel === 'people') { |
|
|
if (this.orgLevel === 'people') { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else if (this.orgLevel === 'search') { |
|
|
} else if (this.orgLevel === 'search') { |
|
|
this.$nextTick(() => { |
|
|
this.$nextTick(() => { |
|
|
|
|
|
|
|
|
this.$refs.ref_search.loadByName(this.searchName); |
|
|
this.$refs.ref_search.loadByName(this.searchName); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -430,7 +430,8 @@ const vueGis = { |
|
|
|
|
|
|
|
|
//加载当前园区的标注 |
|
|
//加载当前园区的标注 |
|
|
loadPolygon (subAgencyArray) { |
|
|
loadPolygon (subAgencyArray) { |
|
|
polygonSource.clear()//清空变电站标注 |
|
|
polygonSource.clear()//清空多边形标注 |
|
|
|
|
|
iconSource.clear()//清空多边形标注 |
|
|
|
|
|
|
|
|
let featureData = []//标注数据 |
|
|
let featureData = []//标注数据 |
|
|
if (subAgencyArray && subAgencyArray.length > 0) {//判断是否存在下级标注 |
|
|
if (subAgencyArray && subAgencyArray.length > 0) {//判断是否存在下级标注 |
|
@ -473,9 +474,7 @@ const vueGis = { |
|
|
oneData.geometry.coordinates.push(polygonArray) |
|
|
oneData.geometry.coordinates.push(polygonArray) |
|
|
featureData.push(oneData) |
|
|
featureData.push(oneData) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (featureData && featureData.length > 0) { |
|
|
if (featureData && featureData.length > 0) { |
|
@ -489,6 +488,7 @@ const vueGis = { |
|
|
|
|
|
|
|
|
let iconFeatures = []; |
|
|
let iconFeatures = []; |
|
|
feature.forEach(oneIcon => { |
|
|
feature.forEach(oneIcon => { |
|
|
|
|
|
|
|
|
var extent = boundingExtent(oneIcon.getGeometry().getCoordinates()[0]); //获取一个坐标数组的边界,格式为[minx,miny,maxx,maxy] |
|
|
var extent = boundingExtent(oneIcon.getGeometry().getCoordinates()[0]); //获取一个坐标数组的边界,格式为[minx,miny,maxx,maxy] |
|
|
// var center = getCenter(extent); //获取边界区域的中心位置 |
|
|
// var center = getCenter(extent); //获取边界区域的中心位置 |
|
|
//添加标注 |
|
|
//添加标注 |
|
@ -497,19 +497,17 @@ const vueGis = { |
|
|
|
|
|
|
|
|
let oneArray = [x, y] |
|
|
let oneArray = [x, y] |
|
|
this.iconCoordinators.push(oneArray) |
|
|
this.iconCoordinators.push(oneArray) |
|
|
|
|
|
// debugger |
|
|
//视频监控样式 |
|
|
//视频监控样式 |
|
|
let oneCctv = new Feature({ |
|
|
let oneCctv = new Feature({ |
|
|
geometry: new Point([x, y]), |
|
|
geometry: new Point([x, y]), |
|
|
id: oneIcon.id, |
|
|
id: oneIcon.id_, |
|
|
properties: { |
|
|
properties: { |
|
|
type: "icon", |
|
|
type: "icon", |
|
|
id: oneIcon.id |
|
|
id: oneIcon.id_ |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
console.log(oneIcon.values_) |
|
|
|
|
|
|
|
|
|
|
|
let iconStyle = new Style({ |
|
|
let iconStyle = new Style({ |
|
|
image: new Icon({ |
|
|
image: new Icon({ |
|
|
// anchor: [0.5, 0.5], |
|
|
// anchor: [0.5, 0.5], |
|
@ -525,9 +523,7 @@ const vueGis = { |
|
|
iconFeatures.push(oneCctv); |
|
|
iconFeatures.push(oneCctv); |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
console.log(iconFeatures) |
|
|
|
|
|
|
|
|
|
|
|
iconSource.clear(); //清空cctyv标注 |
|
|
|
|
|
iconSource.addFeatures(iconFeatures); |
|
|
iconSource.addFeatures(iconFeatures); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -591,7 +587,7 @@ const vueGis = { |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
map.on('singleclick', function (e) { |
|
|
map.on('singleclick', function (e) { |
|
|
console.log(e.coordinate) |
|
|
// console.log(e.coordinate) |
|
|
// console.log(transform(e.coordinate, 'EPSG:3857', 'EPSG:4326')); |
|
|
// console.log(transform(e.coordinate, 'EPSG:3857', 'EPSG:4326')); |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
@ -745,19 +741,7 @@ export default vueGis; |
|
|
.ol-overlaycontainer-stopevent { |
|
|
.ol-overlaycontainer-stopevent { |
|
|
display: none; |
|
|
display: none; |
|
|
} |
|
|
} |
|
|
.el-input__inner[WarningColor="warning"] { |
|
|
|
|
|
background-color: #011168; |
|
|
|
|
|
border-radius: 4px 0 0 4px; |
|
|
|
|
|
height: 56px; |
|
|
|
|
|
border: none; |
|
|
|
|
|
box-shadow: 0 0 10px inset #1a5afd; |
|
|
|
|
|
padding-left: 70px; |
|
|
|
|
|
font-size: 18px; |
|
|
|
|
|
font-family: PingFang SC; |
|
|
|
|
|
font-weight: 400; |
|
|
|
|
|
color: #ffffff; |
|
|
|
|
|
opacity: 0.7; |
|
|
|
|
|
} |
|
|
|
|
|
.el-scrollbar__wrap { |
|
|
.el-scrollbar__wrap { |
|
|
overflow-x: hidden !important; |
|
|
overflow-x: hidden !important; |
|
|
} |
|
|
} |
|
|