简介:优化绘制点、线,面鼠标位置获取精度。支持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);