Skip to content

缓冲区分析

该框架支持缓冲区分析

代码实例

vue
<script setup lang="ts">
import { onMounted, onBeforeUnmount } from 'vue'
const LarkExplorer = window.LarkExplorer
let map: any
onMounted(() => {
  LarkExplorer.ready({
    baseUrl: './dist/resources/',
  }).then(initMap)
})

function initMap() {
  // 默认谷歌影像地图
  const baseImagery = LarkExplorer.BaseLayer.DefaultTdtImg

  // 默认全球地形
  const baseTerrain = LarkExplorer.BaseLayer.DefaultTerrain

  map = new LarkExplorer.Map('map', baseImagery, baseTerrain)
  initView()
}
function initView() {
  const status = {
    position: {
      x: -947707.6526854301,
      y: 5525655.629629169,
      z: 3043025.882299652,
    },
    hpr: {
      heading: 3.862207334800405,
      pitch: -0.3624409974692644,
      roll: 0.0001087727106403591,
    },
  }
  map.Navigation.flyToPos(status, 3)
  console.log(map)
}
const buffer = () => {
  const pointD = map.SpecialAnalysis.Buffer.pointDegrees([111, 23], 1000)
  const pos = LarkExplorer.Coordinate.PosFromXYZ(111, 23)
  const point = map.SpecialAnalysis.Buffer.point(pos, 1000)
  console.log('点缓冲区', pointD, point)

  const positions0 = [
    [111, 23],
    [111.2, 23],
    [111.4, 23],
  ]
  const polylineD = map.SpecialAnalysis.Buffer.polylineDegreesArray(
    positions0,
    1000
  )
  const polylinePos = positions0.map((pos) =>
    LarkExplorer.Coordinate.PosFromXYZ(pos[0], pos[1])
  )
  const polyline = map.SpecialAnalysis.Buffer.polyline(polylinePos, 1000)
  console.log('线缓冲区', polylineD, polyline)

  const positions1 = [
    [111, 23],
    [111, 24],
    [110, 24],
    [110, 23],
    [111, 23],
  ]
  const polygonD = map.SpecialAnalysis.Buffer.polygonDegreesArray(
    positions1,
    1000
  )
  const polygonPos = positions1.map((pos) =>
    LarkExplorer.Coordinate.PosFromXYZ(pos[0], pos[1])
  )
  const polygon = map.SpecialAnalysis.Buffer.polygon(polygonPos, 1000)
  console.log('面缓冲区', polygonD, polygon)
}
</script>

运行效果 更多示例