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);