You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
3.8 KiB
175 lines
3.8 KiB
4 years ago
|
<template>
|
||
|
<div class="g-cpt">
|
||
|
<div class="g-l">
|
||
|
<div class="m-people">
|
||
|
<cpt-card>
|
||
|
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
|
||
|
</cpt-card>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="g-r"></div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import { Loading } from 'element-ui'; //引入Loading服务
|
||
|
import { requestPost } from "@/js/dai/request";
|
||
|
import cptCard from "@/views/modules/visual/cpts/card";
|
||
|
|
||
|
export default {
|
||
|
name: 'HomeMap',
|
||
|
data () {
|
||
|
return {
|
||
|
centerPoint: [],//中心点位置
|
||
|
zoom: 14,//缩放范围:区14
|
||
|
minZoom: 1,//最小缩放
|
||
|
|
||
|
orgData: {},//当前组织对象
|
||
|
orgId: '',
|
||
|
orgLevel: '',
|
||
|
|
||
|
subAgencyArray: [],//下拉框数据
|
||
|
|
||
|
selPolygonId: '',//选择的多边形id
|
||
|
selPolygon: {},
|
||
|
|
||
|
//右侧列表
|
||
|
name: "",
|
||
|
|
||
|
//下钻层级记录
|
||
|
runNum: 0,
|
||
|
runAgency: [],
|
||
|
|
||
|
}
|
||
|
},
|
||
|
|
||
|
props: {
|
||
|
|
||
|
vueFlag: {
|
||
|
type: String,
|
||
|
default: "alarm"
|
||
|
}
|
||
|
},
|
||
|
computed: {
|
||
|
|
||
|
mapHeight () {
|
||
|
|
||
|
return this.clientHeight - 120;
|
||
|
|
||
|
},
|
||
|
// zoom: {
|
||
|
// get () {
|
||
|
// //根据不同屏幕分辨率,控制zoom大小
|
||
|
// if (this.clientHeight < 900) {
|
||
|
// return 2.3
|
||
|
// } else {
|
||
|
// return 2.8
|
||
|
// }
|
||
|
// },
|
||
|
// set (value) {
|
||
|
// }
|
||
|
// },
|
||
|
|
||
|
},
|
||
|
components: {
|
||
|
cptCard
|
||
|
},
|
||
|
async mounted () {
|
||
|
|
||
|
|
||
|
},
|
||
|
methods: {
|
||
|
handleSearch () {
|
||
|
|
||
|
},
|
||
|
|
||
|
//加载组织数据
|
||
|
async loadOrgData () {
|
||
|
const url = "/gov/org/agency/maporg"
|
||
|
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/agency/maporg"
|
||
|
let params = {
|
||
|
orgId: this.orgId,
|
||
|
level: this.orgLevel
|
||
|
}
|
||
|
|
||
|
const { data, code, msg } = await requestPost(url, params)
|
||
|
|
||
|
if (code === 0) {
|
||
|
this.orgData = data
|
||
|
this.runAgency.push(data)
|
||
|
|
||
|
if (data.children && data.children.length > 0) {
|
||
|
this.subAgencyArray = data.children
|
||
|
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
this.$message.error(msg)
|
||
|
}
|
||
|
|
||
|
},
|
||
|
|
||
|
//加载当前园区的标注
|
||
|
loadPolygon (subAgencyArray) {
|
||
|
polygonSource.clear()//清空变电站标注
|
||
|
|
||
|
let featureData = []//标注数据
|
||
|
if (subAgencyArray && subAgencyArray.length > 0) {//判断是否存在下级标注
|
||
|
let oneData = {}
|
||
|
|
||
|
subAgencyArray.forEach(agencyItem => {
|
||
|
|
||
|
if (agencyItem.coordinates && agencyItem.coordinates !== '') {//如果有坐标
|
||
|
oneData = {
|
||
|
type: 'Feature',
|
||
|
id: agencyItem.id,
|
||
|
properties: {
|
||
|
id: agencyItem.id,
|
||
|
level: agencyItem.level,
|
||
|
name: agencyItem.name
|
||
|
},
|
||
|
geometry: {
|
||
|
type: 'Polygon',
|
||
|
coordinates: [],
|
||
|
},
|
||
|
}
|
||
|
let coorArray = agencyItem.coordinates.split(',')//坐标数组
|
||
|
|
||
|
let itemArray = []//单个点位的[lon,lat],数组
|
||
|
let polygonArray = []//整个多边形的[[lon,lat],[lon,lat],[lon,lat]]数组
|
||
|
|
||
|
coorArray.forEach((item, index) => {
|
||
|
itemArray.push(item)
|
||
|
if (index % 2 == 0) {//偶
|
||
|
|
||
|
} else {//奇
|
||
|
polygonArray.push(itemArray)
|
||
|
itemArray = []
|
||
|
}
|
||
|
|
||
|
});
|
||
|
oneData.geometry.coordinates.push(polygonArray)
|
||
|
featureData.push(oneData)
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
if (featureData && featureData.length > 0) {
|
||
|
var geojsonObject = {
|
||
|
'type': 'FeatureCollection',
|
||
|
'features': featureData
|
||
|
};
|
||
|
let feature = (new GeoJSON()).readFeatures(geojsonObject)
|
||
|
polygonSource.addFeatures(feature)
|
||
|
|
||
|
}
|
||
|
|
||
|
},
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" src="@/assets/scss/people.scss" scoped></style>
|
||
|
|