cesium 소스코드
* 2024. 11. 12. cesium js 1.123 동작 확인.
cesium_js/server.js
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'node_modules/cesium/Build/Cesium')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
cesium_js/index.html
<html>
<head>
<meta charset="utf-8">
<script src="https://cesium.com/downloads/cesiumjs/releases/1.123/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.123/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body onload="render()">
<div id="cesiumContainer"></div>
<div id="toolbar"></div>
<script>
async function render()
{
Cesium.Ion.defaultAccessToken = "여기에_토큰_붙여넣기";
// cesium에서 제공하는 지형을 보여주는 뷰어 생성.
const viewer = new Cesium.Viewer("cesiumContainer", {
terrainProvider: await Cesium.CesiumTerrainProvider.fromIonAssetId(1)
});
viewer.scene.globe.depthTestAgainstTerrain = true;
try
{
// 애셋을 추가한다.
// OSM Building 애셋 추가.
var tileset = await Cesium.Cesium3DTileset.fromIonAssetId(96188);
viewer.scene.primitives.add(tileset);
// 카메라 위치와 방향 조정
await viewer.scene.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(127.056718, 36.527274, 300), // 위도, 경도, 높이
orientation: new Cesium.HeadingPitchRoll.fromDegrees(0, -10, 0,), // Heading(Yaw), Pitch, Roll(bank)
});
} catch (error)
{
console.log(error);
}
};
</script>
</body>
</html>
cesium_js/index.html 에셋 추가 예
<html>
<head>
<meta charset="utf-8">
<script src="https://cesium.com/downloads/cesiumjs/releases/1.123/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.123/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body onload="render()">
<div id="cesiumContainer"></div>
<div id="toolbar"></div>
<script>
async function render()
{
Cesium.Ion.defaultAccessToken = "여기에_토큰_붙여넣기";
// cesium에서 제공하는 지형을 보여주는 뷰어 생성.
const viewer = new Cesium.Viewer("cesiumContainer", {
terrainProvider: await Cesium.CesiumTerrainProvider.fromIonAssetId(1)
});
viewer.scene.globe.depthTestAgainstTerrain = true;
try
{
// 애셋을 추가한다.
var tileset = await Cesium.Cesium3DTileset.fromIonAssetId(96188);
viewer.scene.primitives.add(tileset);
tileset = await Cesium.Cesium3DTileset.fromIonAssetId(111111111);
viewer.scene.primitives.add(tileset);
// 카메라 위치와 방향 조정
await viewer.scene.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(127.056718, 36.527274, 300), // 경도, 위도, 높이
orientation: new Cesium.HeadingPitchRoll.fromDegrees(0, -10, 0,), // Heading(Yaw), Pitch, Roll(bank)
});
} catch (error)
{
console.log(error);
}
};
</script>
</body>
</html>