From 2a54cb193ea5464fec4fb95b9264f7213cfd089b Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 14 Sep 2022 08:46:31 +0800
Subject: [PATCH] 地块编辑优化
---
src/components/map/plotMap.vue | 47 +++++++++++++++++++++++++++++------------------
1 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/src/components/map/plotMap.vue b/src/components/map/plotMap.vue
index 3c710c3..06b4e6e 100644
--- a/src/components/map/plotMap.vue
+++ b/src/components/map/plotMap.vue
@@ -7,6 +7,8 @@
<script>
import NCregion from "@/assets/region"
import { glob } from "glob"
+import {getDetail } from "@/api/farm/farm"
+import { mapGetters } from "vuex"
import * as turf from '@turf/turf'
var farmRegionLayer = null
@@ -22,6 +24,7 @@
data () {
return {
polyline: null,
+ farm:{},
}
},
watch: {
@@ -32,14 +35,14 @@
}
},
computed: {
-
+ ...mapGetters(["$farmId"]),
},
mounted () {
if (global.viewer != null) {
global.viewer = null
}
- function initViewer () {
+ function initViewer (lat,lon) {
global.viewer = new global.DC.Viewer('viewer-container', {
contextOptions: {
webgl: {
@@ -214,7 +217,7 @@
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ lon, lat, 1800.0
),
orientation: {
// 指向
@@ -228,8 +231,12 @@
// global.viewer.locationBar.enable = true
}
- global.DC.ready(initViewer)
- this.addRegionPolyLine(NCregion)
+ getDetail(this.$farmId).then(res=>{
+ this.farm.latitude = res.data.data.latitude
+ this.farm.longitude = res.data.data.longitude
+ global.DC.ready(initViewer(this.farm.latitude,this.farm.longitude))
+ this.addRegionPolyLine(NCregion)
+ })
},
methods: {
/**
@@ -467,18 +474,7 @@
// 经纬度测算中心位置
getCenter (arr) {
- var positionArr = []
- arr.forEach(e=>{
- // e = new global.DC.Namespace.Cesium.Cartesian3(e[0]-0, e[1]-0, 0)
- e[0] = e[0]-0
- e[1] = e[1]-0
- positionArr.push(e)
- })
- positionArr.push(arr[0])
- var positionTurf = [positionArr]
- var polygon = turf.polygon(positionTurf);
- var centroid = turf.centroid(polygon);
- let centerLonLat = []
+
// if (arr.length) {
// const lon = []
// const lat = []
@@ -502,7 +498,22 @@
// centerLonLat = [Number(centerLongitude), Number(centerLatitude)]
// console.log("中心",centerLonLat)
// }
- centerLonLat = [centroid.geometry.coordinates[0],centroid.geometry.coordinates[1]]
+ let centerLonLat = []
+ if(arr.length >= 3 ){
+ var positionArr = []
+ arr.forEach(e=>{
+ // e = new global.DC.Namespace.Cesium.Cartesian3(e[0]-0, e[1]-0, 0)
+ e[0] = e[0]-0
+ e[1] = e[1]-0
+ positionArr.push(e)
+ })
+ positionArr.push(arr[0])
+ var positionTurf = [positionArr]
+ var polygon = turf.polygon(positionTurf);
+ var centroid = turf.centroid(polygon);
+
+ centerLonLat = [centroid.geometry.coordinates[0],centroid.geometry.coordinates[1]]
+ }
return centerLonLat
}
}
--
Gitblit v1.9.3