husq
2023-10-12 abcb68359e2806c688cedbd5b6a07e3a2bc43db4
src/pages/page-web/projects/wayline.vue
@@ -96,6 +96,7 @@
import { load } from '@amap/amap-jsapi-loader'
import { getRoot } from '/@/root'
import * as Cesium from 'cesium'
import { cesiumOperation } from '/@/hooks/use-cesium-tsa'
const loading = ref(false)
const { appContext } = getCurrentInstance()
@@ -107,7 +108,7 @@
  total: -1,
  page_size: 10
}
const kmlEntity = ref<any>([])
const waylinesData = reactive({
  data: [] as WaylineFile[]
})
@@ -119,6 +120,7 @@
const canRefresh = ref(true)
const importVisible = ref<boolean>(root.$router.currentRoute.value.name === ERouterName.WAYLINE)
const height = ref()
const { removeById, } = cesiumOperation()
onMounted(() => {
  const parent = document.getElementsByClassName('scrollbar').item(0)?.parentNode as HTMLDivElement
@@ -204,10 +206,14 @@
 * @param file
 */
function initKmlFile (file:string) {
  removeById('kmzLine')
  const options = {
    camera: global.$viewer.scene.camera,
    canvas: global.$viewer.scene.canvas,
    screenOverlayContainer: global.$viewer.container,
  }
  if (kmlDataSource) {
    global.$viewer.dataSources.remove(kmlDataSource)
  }
  global.$viewer.dataSources.add(
    Cesium.KmlDataSource.load(
@@ -215,10 +221,8 @@
      options
    )).then((res: any) => {
    kmlDataSource = res
    kmlEntity.value = kmlDataSource.entities.values
    kmlDataSource.show = true
    console.log('Entits数组', kmlDataSource.entities.values)
    const kmlEntityArr = kmlDataSource.entities.values[0]._children
    const cartesianArr = []
    for (let i = 0; i < kmlEntityArr.length; i++) {
@@ -229,12 +233,11 @@
        outlineColor: Cesium.Color.WHITE,
      })
      entity.billboard = null
      cartesianArr.push(entity.position._value)
    }
    console.log(cartesianArr, 'cartesianArr')
    const lineEntity = global.$viewer.entities.add({
      name: 'entityLine',
      id: 'kmzLine',
      polyline: {
        positions: cartesianArr,
        width: 10,
@@ -244,7 +247,7 @@
    })
    global.$viewer.flyTo(lineEntity, {
      offset: new Cesium.HeadingPitchRange(0, -90, 1000)
      offset: new Cesium.HeadingPitchRange(0, -90, 10000)
    })
  })
}