Cesium测量优化1

简介:优化绘制点、线,面鼠标位置获取精度。支持3dties,gltf model,以及box等Geometry Entity上的位置拾取。

 

 

测试代码

<template>
  <div class="dog">
    <div id="cesiumContainer" style="width: 100%; height: 100%"></div>
    <MeasureAnalysis ref="analysis_measure"></MeasureAnalysis>
    <div id="toolTip"></div>
  </div>
</template>

<script>
import MeasureAnalysis from "./components/measureAnalysis";
export default {
  data() {
    return {};
  },

  components: {
    MeasureAnalysis,
  },

  computed: {},

  created() {},

  mounted() {
    TS.ready(() => {
      Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(
        92.0,
        25.0,
        119.0,
        33.0
      );

      window.viewer = new Cesium.Viewer("cesiumContainer", {
        // terrainProvider : Cesium.createWorldTerrain()
      });
      this.$refs.analysis_measure.init();
      // 添加三维模型到球儿上
      const tileset = viewer.scene.primitives.add(
        new Cesium.Cesium3DTileset({
          url: "http://localhost:8080/tileset.json",
        })
      );
      viewer.flyTo(tileset);

      // 添加box
      const blueBox = viewer.entities.add({
        name: "Blue box",
        position: Cesium.Cartesian3.fromDegrees(115.99992822, 39.00004025, 2.5),
        box: {
          dimensions: new Cesium.Cartesian3(5.0, 5.0, 5.0),
          material: Cesium.Color.BLUE,
        },
      });
      // viewer.flyTo(blueBox);

      // 添加model glb
      function createModel(url, height) {
        //viewer.entities.removeAll();

        const position = Cesium.Cartesian3.fromDegrees(
          116.00005686,
          39.00001029,
          height
        );
        const heading = Cesium.Math.toRadians(0);
        const pitch = 0;
        const roll = 0;
        const hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
        const orientation = Cesium.Transforms.headingPitchRollQuaternion(
          position,
          hpr
        );

        const entity = viewer.entities.add({
          name: 'glb',
          position: position,
          orientation: orientation,
          model: {
            uri: url,
            minimumPixelSize: 128,
            maximumScale: 20000,
          },
        });

        //viewer.trackedEntity = entity;
      }
      // createModel("./assets/CesiumMilkTruck/CesiumMilkTruck.glb", 0);
      createModel('http://localhost:8081/CesiumMilkTruck/CesiumMilkTruck.glb',0);

 

posted on 2022-05-09 11:30  苹果园dog  阅读(102)  评论(0编辑  收藏  举报

导航