Cesium에서 지도 위에 개체 추가하는 방법 2가지
primitives를 이용하는 방법과 entities를 이용하는 방법이 있음
primitives에 추가하는 방법
viewer.scene.primitives.add({옵션});
예문
var tileset1 = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: '/Cesium-1.50/data/CtData/sampyeong/smp1/tileset.json',
maximumMemoryUsage : 768, //기본값 512. 개발PC기준 1024 설정시 더 불안정 했음
//maximumScreenSpaceError: 1 //세분화 수준 향상 값 : 작을수록 디테일함. 기본값 16
}));
tileset1.readyPromise.then(function(tileset) {
//var heightOffset = 0; //타일 고도 : 지형이 없을때
var heightOffset = 68; //타일 고도 : 지형이 있을때
var boundingSphere = tileset.boundingSphere;
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
tileset.show = true; //모델 보이기
});
entities에 추가하는 방법
viewer.entities.add({옵션});
예문
var entity = viewer.entities.add({
name : 'video',
position : Cesium.Cartesian3.fromDegrees(coordinatex, coordinatey, level),
point : {
pixelSize : 10,
color : Cesium.Color.YELLOW,
outlineWidth : 1,
outlineColor : Cesium.Color.GREEN,
disableDepthTestDistance : Number.POSITIVE_INFINITY
}
});