Cesium添加面

<template>
  <div>
    <div id="cesiumContainer"></div>
  </div>
</template>
<script>

var Cesium = require("cesium/Cesium")
export default {
  mounted() {
    console.log('Cesium', Cesium);
    //  创建地图
    let viewer = new Cesium.Viewer("cesiumContainer", {
      infoBox: false, // 点击要素之后显示的信息 信息框小部件
      geocoder: false, // 地名查找控件
      homeButton: false, // Home按钮
      animation: false, // 动画控件
      fullscreenButton: false, // 全屏按钮
      sceneModePicker: false, // 切换展示模式控件 2D/3D
      navigationHelpButton: false, // 帮助信息控件导航提示
      baseLayerPicker: false,//地图选择器
    })

    let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
    let positions = [] // 用于存储点的位置数据数组
    let drawing = false;
    handler.setInputAction(function (movement) {
      if (!drawing) {
        positions = [];
        drawing = true;
      }
      let ray = viewer.camera.getPickRay(movement.position);//这里定义了一个事件处理函数,当事件被触发时执行。
      let cartesian = viewer.scene.globe.pick(ray, viewer.scene);//这行代码根据鼠标点击位置创建了一个射线
      let cartographic = Cesium.Cartographic.fromCartesian(cartesian);//这行代码使用射线与地球表面的交点,得到一个笛卡尔坐标。
      let lng = Cesium.Math.toDegrees(cartographic.longitude); // 经度 这里将笛卡尔坐标转换为经纬度高度坐标系。
      let lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度 这行代码将经度从弧度转换为度数。
      let alt = cartographic.height; // 高度

      positions.push(Cesium.Cartesian3.fromDegrees(lng, lat, alt))

      if (positions.length < 1) return;
      viewer.entities.add({
        name: "面",
        polygon: {
          hierarchy: positions,	// 点位置数组
          // material: new Cesium.Color.fromCssColorString("#FFD700").withAlpha(.2),
          material: new Cesium.Color.AQUA,
          // 面颜色
        },
      });
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);

    handler.setInputAction(function () {
      if (drawing) {
        drawing = false;
      }
    }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);


    // setView  flyTo
    viewer.camera.setView({
      destination: Cesium.Cartesian3.fromDegrees(109, 34, 1000000),//相机眼睛位置,不是地图位置  经度,维度,高度
      //相机姿态
      orientation: {
        heading: Cesium.Math.toRadians(0.0), // 朝向
        pitch: Cesium.Math.toRadians(-90),    //俯仰   垂直向下
        roll: 0.0                             // 滚转
      },
      duration: 2,
    });

  }
}
</script>

可以翻翻其他文章噢宝宝🤭

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值