2024-05-11 10:06:09 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view class="content">
|
|
|
|
|
<!-- <image src="../../static/a11.png" mode=""></image> -->
|
|
|
|
|
<!-- 地图 -->
|
|
|
|
|
<map class="map" id="map" ref="map" style="width: 100%; height: 100%;" :scale="zoomSize" :latitude="latitude"
|
|
|
|
|
:longitude="longitude" :markers="markers" :enable-satellite="isMap" show-location>
|
|
|
|
|
</map>
|
|
|
|
|
<view class="rightTool">
|
|
|
|
|
<view @click="fengchang" class="right_tool_item">蜂场:<text style="color: #23693F;">{{fengchangNumber}}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view @click="fengxiang" class="right_tool_item">蜂箱:<text style="color: #23693F;">{{fengxiangNumber}}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import request from '../../utils/request'
|
|
|
|
|
export default {
|
|
|
|
|
name: "feature",
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
fengchangNumber: 0,
|
|
|
|
|
fengxiangNumber: 0,
|
|
|
|
|
listData: [],
|
2024-06-05 09:24:17 +08:00
|
|
|
|
latitude: '',
|
|
|
|
|
longitude: '',
|
2024-05-11 10:06:09 +08:00
|
|
|
|
isMap: false,
|
|
|
|
|
zoomSize: 15,
|
|
|
|
|
fclist: [],
|
|
|
|
|
markers: [
|
2024-06-05 09:24:17 +08:00
|
|
|
|
{
|
|
|
|
|
// latitude:27.105794,
|
|
|
|
|
// longitude:120.256882,
|
|
|
|
|
// width: 20,
|
|
|
|
|
// height: 30,
|
|
|
|
|
// id: 0,
|
|
|
|
|
// iconPath: '../../static/aa1.png',
|
|
|
|
|
}
|
2024-05-11 10:06:09 +08:00
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onShow() {
|
|
|
|
|
this.markers = []
|
|
|
|
|
this.getLocation()
|
|
|
|
|
this.listDataFn()
|
|
|
|
|
this.getfengchangList()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getfengchangList() {
|
|
|
|
|
request.get('/api/beehive/index', {}).then(res => {
|
|
|
|
|
this.fengxiangNumber = res.data.data.length
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
request.get('/api/apiary/index', {}).then(res => {
|
|
|
|
|
this.fengchangNumber = res.data.data.length
|
|
|
|
|
this.fclist = res.data.data
|
|
|
|
|
this.fclist.forEach(item => {
|
|
|
|
|
this.markers.push({
|
|
|
|
|
latitude: item.lat,
|
|
|
|
|
longitude: item.lng,
|
|
|
|
|
width: 25,
|
|
|
|
|
height: 25,
|
|
|
|
|
id: item.id,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
iconPath: '../../static/蜂场.png',
|
2024-05-11 10:06:09 +08:00
|
|
|
|
label: {
|
|
|
|
|
content: item.name,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
fontSize:14,
|
|
|
|
|
anchorX: (() => {
|
|
|
|
|
if (item.name.length <= 2) {
|
2024-06-05 09:37:57 +08:00
|
|
|
|
return -13
|
2024-06-05 09:24:17 +08:00
|
|
|
|
} else if (item.name.length <= 3) {
|
|
|
|
|
return -20
|
|
|
|
|
} else if (item.name.length <= 4) {
|
|
|
|
|
return -30
|
2024-06-05 09:37:57 +08:00
|
|
|
|
} else if (item.name.length <= 5) {
|
2024-06-05 09:24:17 +08:00
|
|
|
|
return -35
|
2024-06-05 09:37:57 +08:00
|
|
|
|
} else if (item.name.length <= 6) {
|
2024-06-05 09:24:17 +08:00
|
|
|
|
return -40
|
2024-06-05 09:37:57 +08:00
|
|
|
|
} else if (item.name.length <= 8) {
|
|
|
|
|
return -50
|
2024-06-05 09:24:17 +08:00
|
|
|
|
} else if (item.name.length <=
|
|
|
|
|
10) {
|
2024-06-05 09:37:57 +08:00
|
|
|
|
return -60
|
2024-06-05 09:24:17 +08:00
|
|
|
|
} else {
|
2024-06-05 09:37:57 +08:00
|
|
|
|
return -item.name.length * 6.5
|
2024-06-05 09:24:17 +08:00
|
|
|
|
}
|
|
|
|
|
})(),
|
2024-05-11 10:06:09 +08:00
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
async listDataFn() {
|
|
|
|
|
await request.get('/api/beehive/index2map').then(res => {
|
|
|
|
|
// console.log(res.data.data)
|
|
|
|
|
this.listData = [...res.data.data]
|
|
|
|
|
this.mapdian()
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
mapdian() {
|
|
|
|
|
this.listData.forEach(item => {
|
|
|
|
|
if (item.status_text == '在线') {
|
|
|
|
|
this.markers.push({
|
|
|
|
|
latitude: item.lat,
|
|
|
|
|
longitude: item.lng,
|
|
|
|
|
width: 15,
|
|
|
|
|
height: 15,
|
|
|
|
|
id: item.id,
|
|
|
|
|
iconPath: '../../static/a11.png',
|
|
|
|
|
label: {
|
|
|
|
|
content: item.name,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
anchorX: (() => {
|
|
|
|
|
if (item.name.length <= 2) {
|
|
|
|
|
return -12
|
|
|
|
|
} else if (item.name.length <= 3) {
|
|
|
|
|
return -20
|
|
|
|
|
} else if (item.name.length <= 4) {
|
|
|
|
|
return -25
|
|
|
|
|
} else if (item.name.length <= 5) {
|
|
|
|
|
return -30
|
|
|
|
|
} else if (item.name.length <= 6) {
|
|
|
|
|
return -35
|
|
|
|
|
} else if (item.name.length <= 8) {
|
|
|
|
|
return -40
|
|
|
|
|
} else if (item.name.length <=
|
|
|
|
|
10) {
|
|
|
|
|
return -45
|
|
|
|
|
} else {
|
|
|
|
|
return -item.name.length * 5
|
|
|
|
|
}
|
|
|
|
|
})(),
|
2024-05-11 10:06:09 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
this.markers.push({
|
|
|
|
|
latitude: item.lat,
|
|
|
|
|
longitude: item.lng,
|
|
|
|
|
width: 15,
|
|
|
|
|
height: 15,
|
|
|
|
|
id: item.id,
|
|
|
|
|
iconPath: '../../static/a22.png',
|
|
|
|
|
label: {
|
|
|
|
|
content: item.name,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
anchorX: (() => {
|
|
|
|
|
if (item.name.length <= 2) {
|
|
|
|
|
return -12
|
|
|
|
|
} else if (item.name.length <= 3) {
|
|
|
|
|
return -20
|
|
|
|
|
} else if (item.name.length <= 4) {
|
|
|
|
|
return -25
|
|
|
|
|
} else if (item.name.length <= 5) {
|
|
|
|
|
return -30
|
|
|
|
|
} else if (item.name.length <= 6) {
|
|
|
|
|
return -35
|
|
|
|
|
} else if (item.name.length <= 8) {
|
|
|
|
|
return -40
|
|
|
|
|
} else if (item.name.length <=
|
|
|
|
|
10) {
|
|
|
|
|
return -45
|
|
|
|
|
} else {
|
|
|
|
|
return -item.name.length * 5
|
|
|
|
|
}
|
|
|
|
|
})(),
|
2024-05-11 10:06:09 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
async getLocation() {
|
|
|
|
|
// 获取用户当前的位置
|
|
|
|
|
// console.log('1111')
|
|
|
|
|
const {
|
|
|
|
|
latitude,
|
|
|
|
|
longitude
|
|
|
|
|
} = await uni.getLocation()
|
|
|
|
|
console.log(latitude, longitude)
|
|
|
|
|
this.latitude = latitude
|
|
|
|
|
this.longitude = longitude,
|
|
|
|
|
this.markers.push({
|
|
|
|
|
latitude,
|
|
|
|
|
longitude,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
width: 1,
|
|
|
|
|
height: 1,
|
2024-05-11 10:06:09 +08:00
|
|
|
|
id: 0,
|
2024-06-05 09:24:17 +08:00
|
|
|
|
iconPath:'',
|
2024-05-11 10:06:09 +08:00
|
|
|
|
customCallout: {
|
2024-06-05 09:24:17 +08:00
|
|
|
|
// anchorY: -5,
|
|
|
|
|
anchorX: (() => {
|
|
|
|
|
if (item.name.length <= 2) {
|
|
|
|
|
return -12
|
|
|
|
|
} else if (item.name.length <= 3) {
|
|
|
|
|
return -20
|
|
|
|
|
} else if (item.name.length <= 4) {
|
|
|
|
|
return -25
|
|
|
|
|
} else if (item.name.length <= 5) {
|
|
|
|
|
return -30
|
|
|
|
|
} else if (item.name.length <= 6) {
|
|
|
|
|
return -35
|
|
|
|
|
} else if (item.name.length <= 8) {
|
|
|
|
|
return -40
|
|
|
|
|
} else if (item.name.length <=
|
|
|
|
|
10) {
|
|
|
|
|
return -45
|
|
|
|
|
} else {
|
|
|
|
|
return -item.name.length * 5
|
|
|
|
|
}
|
|
|
|
|
})(),
|
2024-05-11 10:06:09 +08:00
|
|
|
|
display: 'BYCLICK'
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
fengchang() { // 跳转蜂场
|
|
|
|
|
wx.switchTab({
|
|
|
|
|
url: '/pages/fengchang/index'
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
fengxiang() { // 跳转蜂箱
|
|
|
|
|
wx.switchTab({
|
|
|
|
|
url: '/pages/fengxiang/index'
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// methods: {
|
|
|
|
|
// toggle(){
|
|
|
|
|
// this.isMap=!this.isMap
|
|
|
|
|
// },
|
|
|
|
|
// blowup(){
|
|
|
|
|
// if(this.zoomSize >= 20) return
|
|
|
|
|
// this.zoomSize++
|
|
|
|
|
// },
|
|
|
|
|
// minification(){
|
|
|
|
|
// if(this.zoomSize <= 3) return
|
|
|
|
|
// this.zoomSize--
|
|
|
|
|
// },
|
|
|
|
|
// back(){
|
|
|
|
|
// this.map = uni.createMapContext("map", this);
|
|
|
|
|
// this.map.moveToLocation()
|
|
|
|
|
// },
|
|
|
|
|
// mapTap({detail: {latitude,longitude}}){
|
|
|
|
|
// if(this.flag){
|
|
|
|
|
// this.option = {
|
|
|
|
|
// id: ++this.id,
|
|
|
|
|
// latitude: latitude,
|
|
|
|
|
// longitude: longitude,
|
|
|
|
|
// width: 20,
|
|
|
|
|
// height: 30
|
|
|
|
|
// }
|
|
|
|
|
// let arr=[]
|
|
|
|
|
// this.markers.push(this.option)
|
|
|
|
|
// for (let index = 1; index < this.markers.length; index++) {
|
|
|
|
|
// arr.push({
|
|
|
|
|
// latitude:this.markers[index].latitude,
|
|
|
|
|
// longitude: this.markers[index].longitude
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// this.option=arr;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
// measuredArea(){
|
|
|
|
|
// this.flag=!this.flag
|
|
|
|
|
// },
|
|
|
|
|
// wayAll(){
|
|
|
|
|
// if (this.option.length > 2) {
|
|
|
|
|
// console.log(this.option);
|
|
|
|
|
// this.polygons[0].points=[];
|
|
|
|
|
// this.polygons[0].points.push(...this.option)
|
|
|
|
|
// this.markers[1]["callout"]={
|
|
|
|
|
// content: "4917.9平方公里",
|
|
|
|
|
// display: "ALWAYS",
|
|
|
|
|
// padding: 6,
|
|
|
|
|
// borderRadius: 5,
|
|
|
|
|
// borderWidth: 1,
|
|
|
|
|
// borderColor: "#3D8DFE",
|
|
|
|
|
// anchorX:30,
|
|
|
|
|
// anchorY:10
|
|
|
|
|
// }
|
|
|
|
|
// console.log(this.polygons,'得到的数值');
|
|
|
|
|
// }else{
|
|
|
|
|
// uni.showToast({
|
|
|
|
|
// title:"起码选择三个点",
|
|
|
|
|
// duration: 2000
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// closeWayall(){
|
|
|
|
|
// this.polygons[0].points=[{
|
|
|
|
|
// latitude: 28.68194 ,
|
|
|
|
|
// longitude:115.96191
|
|
|
|
|
// }, {
|
|
|
|
|
// latitude: 28.68195 ,
|
|
|
|
|
// longitude:115.96192
|
|
|
|
|
// }, {
|
|
|
|
|
// latitude: 28.68196 ,
|
|
|
|
|
// longitude:115.96193
|
|
|
|
|
// }]
|
|
|
|
|
// },
|
|
|
|
|
// deleteAnchor(){
|
|
|
|
|
// if(this.markers.length !== 1){
|
|
|
|
|
// this.markers.pop()
|
|
|
|
|
// let arr=[]
|
|
|
|
|
// for (let index = 1; index < this.markers.length; index++) {
|
|
|
|
|
// arr.push({
|
|
|
|
|
// latitude:this.markers[index].latitude,
|
|
|
|
|
// longitude: this.markers[index].longitude
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// this.option=arr;
|
|
|
|
|
// this.closeWayall()
|
|
|
|
|
// if(this.option.length > 2){
|
|
|
|
|
// this.wayAll()
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.content {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
position: absolute;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
|
|
.rightTool {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 30rpx;
|
|
|
|
|
top: 30rpx;
|
|
|
|
|
|
|
|
|
|
.right_tool_item {
|
|
|
|
|
background-color: rgba(214, 215, 219, 0.5);
|
|
|
|
|
padding: 10rpx 20rpx;
|
|
|
|
|
margin-top: 10rpx;
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sidebar {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 15%;
|
|
|
|
|
right: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// .toggle,.measure,.zoom{}
|
|
|
|
|
|
|
|
|
|
.measure {
|
|
|
|
|
margin-top: 15rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.stakeMark {
|
|
|
|
|
margin-top: 15rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.stakeMark {
|
|
|
|
|
width: 80rpx;
|
|
|
|
|
height: 75rpx;
|
|
|
|
|
line-height: 75rpx;
|
|
|
|
|
font-size: 25rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
background-color: white;
|
|
|
|
|
color: #146bee;
|
|
|
|
|
border-radius: 7rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.zoom {
|
|
|
|
|
margin-top: 50rpx;
|
|
|
|
|
border-radius: 7rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.orientation {
|
|
|
|
|
width: 80rpx;
|
|
|
|
|
height: 75rpx;
|
|
|
|
|
line-height: 75rpx;
|
|
|
|
|
font-size: 25rpx;
|
|
|
|
|
background-color: white;
|
|
|
|
|
text-align: center;
|
|
|
|
|
border-radius: 7rpx;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.callout-content {
|
|
|
|
|
position: absolute;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
padding: 15rpx;
|
|
|
|
|
font-size: 16rpx;
|
|
|
|
|
border-radius: 7%;
|
|
|
|
|
|
|
|
|
|
cover-view {
|
|
|
|
|
margin: 15rpx;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.generationRegion {
|
|
|
|
|
width: 80%;
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 10%;
|
|
|
|
|
left: 10%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</style>
|